일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SQLD
- cross join
- 시각화
- 클러스터링
- 기초프로젝트
- 히트맵
- 프롬프트 엔지니어링
- 태블로
- 크롤링
- data analyst
- Chat GPT
- streamlit
- lambda
- jd
- 기초통계
- 서브쿼리
- da
- 데이터분석
- 머신러닝
- GA4
- 데이터 분석
- pandas
- 팀프로젝트
- 전처리
- Python
- 최종 프로젝트
- If
- SQL
- 프로젝트
- 군집화
Archives
- Today
- Total
세조목
SQL 정리(프로그래머스 - '주문량이 많은 아이스크림들 조회하기')(24.01.22) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/133027
SELECT FLAVOR
FROM
(
SELECT *
FROM FIRST_HALF
UNION ALL
SELECT *
FROM JULY
) A
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) DESC
LIMIT 3
문제에서는
7월 아이스크림 총 주문량과
상반기의 아이스크림 총 주문량을 더한 값 중
그 값이 큰 순서대로 상위 3개의 맛을 조회하라고 요구한다.
총 주문량의 합이니까 SUM함수를 쓰면 될 것 같다.
그런데 어떻게 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더할 수 있을까?
다른 테이블인데 말이다.
JOIN으로는 힘들 것 같다.
옆으로 붙여봤자 SUM함수를 사용하기는 힘들것이기 때문이다.
두 테이블의 컬럼이 동일하니까 UNION ALL 함수를 쓸 수 있지 않을까?
그렇다.
UNION ALL 함수를 써서
두 테이블을 위 아래로 붙이고
FLAVOR 별로 TOTAL_ORDER를 SUM하면 되는 것이다.
그런다음
SUM(TOTAL_ORDER)를 내림차순으로 정렬하고
3개까지 출력하라는 명령어인 LIMIT 3을
입력해주면
결과값이 출력되는 것을 확인할 수 있다.
'데이터 분석 공부 > SQL' 카테고리의 다른 글
SQL 예제 풀이(Leetcode - Confirmation Rate) (0) | 2024.02.02 |
---|---|
SQL 정리(Join의 기준)(24.02.01) (0) | 2024.02.01 |
SQL 정리(프로그래머스 - '우유와 요거트가 담긴 장바구니')(24.01.22) (0) | 2024.01.22 |
SQL 정리(하나의 쿼리로 요구하는 모든 값들을 출력할 수 없을때 - WITH, VIEW, IF)(24.01.17) (0) | 2024.01.17 |
SQL 정리(서버 연결)(24.01.12) (0) | 2024.01.12 |