sql

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

kdozlo 2024. 8. 20. 12:05

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

구현 방법

  1. ceil을 이용해서 분기를 직접 계산하여 구했다.
  2. 조건문(case when then else)을 통해 분기를 정해 구했다.
  3. quarter 함수를 이용해 분기를 정해 구했다.

처음에 2번 방식을 떠올렸지만 코드가 너무 길어져 1번 방식으로 구했습니다.
분기 자체를 구하는 내장 함수가 없을까 찾아보니 quarter가 있네요.
3번이 가장 간단합니다.

코드

-- 직접 계산
select
    concat(ceil(month(DIFFERENTIATION_DATE) / 3), 'Q') as 'QUARTER',
        count(id) as 'ECOLI_COUNT'
from
    ECOLI_DATA
group by
    QUARTER
order by
    QUARTER
;


-- case when then end
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
;

-- QUARTER함수 이용
select
    concat(quarter(DIFFERENTIATION_DATE), 'Q') as 'QUARTER',
    count(id) as 'ECOLI_COUNT'
from ECOLI_DATA
group by QUARTER
order by QUARTER
;
image