반응형
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/133027
풀이
SELECT J.FLAVOR
FROM JULY J
JOIN FIRST_HALF F
ON J.FLAVOR = F.FLAVOR
GROUP BY J.FLAVOR
ORDER BY SUM(F.TOTAL_ORDER + J.TOTAL_ORDER) DESC
LIMIT 3;
두 테이블의 총 주문량 더한 값이 큰 순서대로 출력하는 문제
먼저 JULY 테이블과 FISRT_HALF 테이블을 FLAVOR로 JOIN해줌.
문제에 <같은 맛의 아이스크림이라도 다른 출하 번호를 갖게 됩니다> 문구 존재
즉, FLAVOR 컬럼이 유니크하지 않다는 말. 처리 필요.
💡 키포인트
: 똑같은 FLAVOR이더도 SHIPMENT가 다른 경우가 존재하니, FLAVOR 별로 그룹화 해주기 !
처음에 계속 틀렸다고 나와서 다른 사람들의 풀이와 조언을 참고했다.
🤔 그런데 의문점. 왜 FIRST_HALF를 먼저 조인하면 틀렸다고 나오는걸까 ..? (고민해보기)
UNION ALL을 사용한 다른 풀이도 존재하는 듯 하다.
SELECT FLAVOR
FROM
(
SELECT * FROM JULY
UNION ALL
SELECT * FROM FIRST_HALF
)
- UNION ALL을 사용해 두 테이블 모두 열거
- GROUP BY FLAVOR 해서 맛별로 묶고
- 총판매액 SUM(TOTAL_ORDER)해서 내림차순으로 정렬
반응형
'SQL' 카테고리의 다른 글
[MySQL] 기본 문법 정리 (0) | 2023.10.29 |
---|