inblog logo
|
stupefyee
    SQL문제풀기

    [SQL 문제 풀이] 분기별 분화된 대장균의 개체 수 구하기

    프로그래머스 (299308)
    Stupefyee's avatar
    Stupefyee
    Mar 26, 2025
    [SQL 문제 풀이] 분기별 분화된 대장균의 개체 수 구하기
    Contents
    내가 작성한 쿼리
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/299308
    notion image
     

    내가 작성한 쿼리

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

    stupefyee

    RSS·Powered by Inblog