[TIL] 23.03.30

문종현·2023년 3월 30일
0

TIL

목록 보기
98/119
post-custom-banner

👉 오늘 한 일

  • 프로그래머스 SQL 문제풀이
  • 책 편집 & 편집 툴 적용

프로그래머스 SQL

1. 주문량이 많은 아이스크림들 조회하기 💡

  • lv 4, JOIN
  • 7월 판매 데이터에서 맛별로 주문량을 합쳐준 derived 테이블 생성, 상반기 주문량 테이블과 JOIN해서 7월 총판매량 + 상반기 총판매량을 구한 뒤 상위 3개만 추출. 맛(flavor) 컬럼만 표시하기 위해 서브쿼리로 한 번 더 감싸줌
SELECT flavor
FROM(
    SELECT b.flavor,
        (SUM(a.total_order) + SUM(b.total_order)) total_order
    FROM(
        SELECT shipment_id,
            flavor,
            SUM(total_order) total_order
        FROM july
        GROUP BY flavor) a
    JOIN first_half b
    ON a.flavor = b.flavor
    GROUP BY b.flavor
    ORDER BY total_order DESC
    LIMIT 3) c
  • 다른 풀이
    • 7월과 상반기 각 테이블에서 맛별로 판매량 총합을 구한 후 JOIN 하는게 더 깔끔한 것 같다!
SELECT H.FLAVOR
  FROM (
    SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER
      FROM FIRST_HALF
     GROUP BY FLAVOR
  ) H
  INNER JOIN (
    SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER
      FROM JULY
     GROUP BY FLAVOR
  ) J ON H.FLAVOR = J.FLAVOR
 ORDER BY (J.TOTAL_ORDER + H.TOTAL_ORDER) DESC
 LIMIT 3
  • union 활용한 풀이
    • 출제 의도와는 맞지 않는 것 같지만 훨씬 간단하게 풀 수 있다.
select flavor
from (
    select * from first_half
    union
    select * from july) as tmp
group by flavor
order by sum(total_order) desc
limit 0,3
profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글