[SQL 문제 풀이] 주문량이 많은 아이스크림들 조회하기

프로그래머스 (133027)
Stupefyee's avatar
Mar 07, 2025
[SQL 문제 풀이] 주문량이 많은 아이스크림들 조회하기
notion image
notion image
 

내가 작성한 쿼리

Oracle

SELECT FLAVOR FROM ( SELECT F.FLAVOR, (F.TOTAL_ORDER + NVL(J.TOTAL_ORDER, 0)) AS TOTAL_ORDER FROM FIRST_HALF F LEFT JOIN ( SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER FROM JULY GROUP BY FLAVOR ) J ON F.FLAVOR = J.FLAVOR ORDER BY TOTAL_ORDER DESC ) WHERE ROWNUM <= 3;

MySQL

SELECT FH.FLAVOR FROM FIRST_HALF FH JOIN ( SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER FROM JULY GROUP BY FLAVOR ) J ON FH.FLAVOR = J.FLAVOR ORDER BY (FH.TOTAL_ORDER + J.TOTAL_ORDER) DESC LIMIT 3;

차이점

  • 상위 N개 결과를 가져오는 방식, 순서의 차이
    • Oracle
      • ROWNUM <= N 을 사용하여 가져옴
      • WHERE절에서 사용됨 → 정렬보다 먼저 실행됨 → 서브쿼리 활용
    • MySQL
      • LIMIT N 을 사용하여 가져옴
      • 정렬 이후에 실행됨
 
Share article

stupefyee