일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 군집화
- GA4
- da
- 서브쿼리
- cross join
- 데이터 분석
- streamlit
- 태블로
- 기초통계
- data analyst
- jd
- 시각화
- 프로젝트
- Chat GPT
- Python
- If
- 최종 프로젝트
- 데이터분석
- lambda
- SQL
- 프롬프트 엔지니어링
- 클러스터링
- 팀프로젝트
- 기초프로젝트
- SQLD
- pandas
- 크롤링
- 머신러닝
- 전처리
- 히트맵
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 |