[프로그래머스 SQL/299308] 분기별 분화된 대장균의 개체 수 구하기
in Study / Coding Test
☑️ 문제
☑️ 풀이
첫 번째 풀이
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분기니까
해당 월 - 1
을 3으로 나눈다. - FLOOR로 내림처리를 해누다. (소수점 처리, TRUNCATE도 가능)
- 여기에 1을 더한 값에 ‘Q’를 붙인다. ⇒ 1Q, 2Q, 3Q, 4Q
- 총 4분기니까