[MySQL][Lv. 2] 분기별 분화된 대장균의 개체 수 구하기 ✨

드코미·2025년 5월 7일
post-thumbnail

1. 문제 접근

1-1. QUARTER()

항목설명
함수 이름QUARTER(date)
기능입력한 날짜가 몇 번째 분기(1~4)에 속하는지 숫자로 반환
반환값1, 2, 3, 4 (각각 1분기~4분기 의미)
입력 타입DATE, DATETIME, TIMESTAMP, 문자열 날짜도 가능 ('YYYY-MM-DD')
주요 활용 예시- 분기별 입소 동물 수 집계
- 분기 기준 필터링 등

✔️ 반환값 기준

분기 번호해당 월 범위설명
11월 ~ 3월1분기
24월 ~ 6월2분기
37월 ~ 9월3분기
410월 ~ 12월4분기

NULL이 들어가면 QUARTER(NULL)NULL을 반환

✔️ 예시

쿼리결과
SELECT QUARTER('2025-01-15');1
SELECT QUARTER('2025-05-01');2
SELECT QUARTER('2025-08-20');3
SELECT QUARTER('2025-12-31');4

2. 풀이

[풀이1]

SELECT
    CASE
        WHEN MONTH(DIFFERENTIATION_DATE) <= 3 THEN '1Q'
        WHEN MONTH(DIFFERENTIATION_DATE) <= 6 THEN '2Q'
        WHEN MONTH(DIFFERENTIATION_DATE) <= 9 THEN '3Q'
        WHEN MONTH(DIFFERENTIATION_DATE) <= 12 THEN '4Q'
    END AS QUARTER,
    COUNT(ID) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER ASC;

[풀이2] QUARTER() 사용

SELECT 
    CONCAT(QUARTER(DIFFERENTIATION_DATE), 'Q') AS QUARTER
    , COUNT(*) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER;
profile
할 수 있다!!!

0개의 댓글