본문 바로가기

DB/Programmers SQL Kit

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

https://school.programmers.co.kr/learn/courses/30/lessons/133027

 

- FIRST_HALF, JULY 테이블의 맛을 조회하기

단,  두 테이블의 총 주문량을 더 한 값이 큰 3개를 조회할 것

1. 맛별로 그룹핑한 테이블의 total_order를 sum 해서 조회

2. 조회한 테이블과 FIRST_HALF 테이블을 조인하여 두 total_order 값을 더한 값 조회

3. total_order가 가장 큰 값을 limit과 rownum으로 조회

-SQL

mysql : SELECT flavor
FROM (
    SELECT half.flavor, j.total_order + half.total_order
    FROM (
        SELECT flavor, sum(total_order) total_order
        FROM JULY
        GROUP BY flavor
        ORDER BY total_order DESC
    ) j, FIRST_HALF half
    where j.flavor = half.flavor
    ORDER BY j.total_order + half.total_order DESC
) as t
limit 3;

oracle : SELECT flavor
FROM (
    SELECT half.flavor, j.total_order + half.total_order
    FROM (
        SELECT flavor, sum(total_order) total_order
        FROM JULY
        GROUP BY flavor
        ORDER BY total_order DESC
    ) j, FIRST_HALF half
    where j.flavor = half.flavor
    ORDER BY j.total_order + half.total_order DESC
)
WHERE rownum <= 3;

* 더 간단한 방법이 있으므로 차후 업데이트