Contents
내가 작성한 쿼리
내가 작성한 쿼리
Oracle
SELECT
CONCAT(CASE
WHEN MONTH(DIFFERENTIATION_DATE) <= 3 THEN 1
WHEN MONTH(DIFFERENTIATION_DATE) <= 6 THEN 2
WHEN MONTH(DIFFERENTIATION_DATE) <= 9 THEN 3
ELSE 4
END, 'Q') AS QUARTER,
COUNT(ID) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY
CONCAT(CASE
WHEN MONTH(DIFFERENTIATION_DATE) <= 3 THEN 1
WHEN MONTH(DIFFERENTIATION_DATE) <= 6 THEN 2
WHEN MONTH(DIFFERENTIATION_DATE) <= 9 THEN 3
ELSE 4
END, 'Q')
ORDER BY QUARTER;
MySQL
SELECT
CONCAT(CASE WHEN MONTH(DIFFERENTIATION_DATE) <= 3 THEN 1
WHEN MONTH(DIFFERENTIATION_DATE) <= 6 THEN 2
WHEN MONTH(DIFFERENTIATION_DATE) <= 9 THEN 3
ELSE 4
END,'Q') AS QUARTER,
COUNT(ID) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER
차이점
GROUP BY
에서 별칭사용 가능의 여부MySQL
- 쿼리 최적화를 위해,
GROUP BY
절에서 사용되는 별칭을 처리할 때SELECT
구문과 같은 방식으로 해석 →MySQL
은GROUP BY
를 처리할 때 별칭을 먼저 계산하고 이를 기반으로 그룹화 작업을 수행할 수 있도록 허용 - 다른 RDBMS에서는 동작하지 않을 수 있음
Oracle
: 불가 → 직접 명시
Share article