프로그래머스 - 분기별 분화된 대장균의 개체 수 구하기 (MySQL)

조민수·2024년 5월 10일
0

Programmers

목록 보기
57/85

Lv2, SQL - CASE, GROUP BY


문제

각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL 문을 작성해주세요. 이때 각 분기에는 'Q' 를 붙이고 분기에 대해 오름차순으로 정렬해주세요. 대장균 개체가 분화되지 않은 분기는 없습니다.


풀이

첫번째 풀이

  • 각 분기를 CASE-WHEN을 통해 나눈다.
  • 나눠진 분기 별로 각 ID들을 GROUP BY
SELECT 
    CASE
        WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 1 AND 3 THEN '1Q'
        WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 4 AND 6 THEN '2Q'
        WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 7 AND 9 THEN '3Q'
        ELSE '4Q'
    END AS QUARTER, COUNT(ID) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER

두번째 풀이

  • DATE타입의 QUARTER()함수를 이용할 수 있다.
  • 이런게 있는지 처음 알았다.
SELECT 
    CONCAT(QUARTER(DIFFERENTIATION_DATE), 'Q') AS QUARTER,
    COUNT(ID) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER
profile
사람을 좋아하는 Front-End 개발자

0개의 댓글