Contents
내가 작성한 쿼리

내가 작성한 쿼리
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