[프로그래머스 SQL/299308] 분기별 분화된 대장균의 개체 수 구하기

☑️ 문제

프로그래머스 299308

☑️ 풀이

첫 번째 풀이

SELECT CASE WHEN MONTH(DIFFERENTIATION_DATE) <= 3 THEN '1Q'
            WHEN MONTH(DIFFERENTIATION_DATE) <= 6 THEN '2Q'
            WHEN MONTH(DIFFERENTIATION_DATE) <= 9 THEN '3Q'
            ELSE '4Q'
        END AS 'QUARTER', COUNT(*) AS 'ECOLI_COUNT'
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER ASC
  • CASE문을 이용해서 분기별로 구분하였다.

두 번째 풀이

SELECT CONCAT(FLOOR((MONTH(DIFFERENTIATION_DATE) - 1)/3) + 1, 'Q') AS 'QUARTER', COUNT(*) AS 'ECOLI_COUNT'
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER ASC
  • 분기 계산 방법
    • 총 4분기니까 해당 월 - 13으로 나눈다.
    • FLOOR로 내림처리를 해누다. (소수점 처리, TRUNCATE도 가능)
    • 여기에 1을 더한 값에 ‘Q’를 붙인다. ⇒ 1Q, 2Q, 3Q, 4Q

© 2021. All rights reserved.

yaejinkong의 블로그