문제 설명
대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다.
다음은 실험실에서 배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블입니다.
ID : 대장균 개체의 ID
PARENT_ID : 부모 개체의 ID
SIZE_OF_COLONY : 개체의 크기
DIFFERENTIATION_DATE : 분화되어 나온 날짜
GENOTYPE : 개체의 형질
최초의 대장균 개체의 PARENT_ID는 NULL값
문제
각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL문을 작성해주세요. 이때 각 분기에는 'Q'를 붙이고 분기에 대해 오름차순으로 정렬해주세요. 대장균 개체가 분화되지 않은 분기는 없습니다.
예를 들어 ECOLI_DATA 테이블이 다음과 같다면
각 분기별로 분화된 대장균 개체는 다음과 같습니다.
1분기 : ID1, ID3
2분기 : ID2, ID4
3분기 : ID5
4분기 : ID6
따라서 결과는 다음과 같아야 합니다.
풀이
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;
case문은 end로 끝남
case (when 조건문 then 출력결과) end
'코딩테스트 > lv2' 카테고리의 다른 글
[프로그래머스 코딩테스트] oracle Lv.2 진료과별 총 예약 횟수 출력하기 (0) | 2024.10.18 |
---|---|
[프로그래머스 코딩테스트] oracle Lv.2 자동차 평균 대여 기간 구하기 (0) | 2024.10.18 |
[프로그래머스 코딩테스트] Oracle Lv.2 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.07.08 |
[프로그래머스 코딩테스트] MySQL Lv.2 특정 물고기를 잡은 총 수 구하기 (0) | 2024.07.03 |
[프로그래머스 코딩테스트] MySQL Lv.2 부모의 형질을 모두 가지는 대장균 찾기 (0) | 2024.06.26 |