문제
MYSQL
내가 작성한 오답
GROUP BY를 사용할 때 SELECT 또는 ORDER BY에서 쓰이는 컬럼들은 GROUP BY에 포함되거나 SUM(), COUNT() 같은 집계함수로 감싸야 한다.
SELECT H.FLAVOR
FROM FIRST_HALF H
JOIN JULY J ON H.FLAVOR = J.FLAVOR
GROUP BY H.FLAVOR
ORDER BY H.TOTAL_ORDER+J.TOTAL_ORDER DESC
LIMIT 3;내가 작성한 정답
SELECT H.FLAVOR
FROM FIRST_HALF H
JOIN JULY J ON H.FLAVOR = J.FLAVOR
GROUP BY H.FLAVOR
ORDER BY sum(H.TOTAL_ORDER)+sum(J.TOTAL_ORDER) DESC
LIMIT 3;내가 이전에 작성한 정답
SELECT FLAVOR
FROM (SELECT F.FLAVOR , F.TOTAL_ORDER+SUM(J.TOTAL_ORDER) TOTAL
FROM FIRST_HALF F
JOIN JULY J ON F.FLAVOR = J.FLAVOR
GROUP BY J.FLAVOR, F.TOTAL_ORDER
ORDER BY TOTAL DESC
LIMIT 3) TBORACLE
내가 작성한 정답
--1
SELECT J.FLAVOR
FROM FIRST_HALF H
JOIN JULY J ON H.FLAVOR = J.FLAVOR
GROUP BY J.FLAVOR
ORDER BY SUM(H.TOTAL_ORDER)+SUM(J.TOTAL_ORDER) DESC
FETCH FIRST 3 ROWS ONLY;
--2
SELECT FLAVOR
FROM (SELECT H.FLAVOR, SUM(J.TOTAL_ORDER)+SUM(H.TOTAL_ORDER) O
FROM FIRST_HALF H
JOIN JULY J ON H.FLAVOR=J.FLAVOR
GROUP BY H.FLAVOR
ORDER BY O DESC) OO
WHERE ROWNUM <=3;Share article