Advented of SQL 2024 : 미세먼지 수치의 계절간 차이 (DAY 20)

Hyeon·2024년 12월 20일

SQL 문제 풀이

목록 보기
57/61

문제 탐구

이 데이터를 활용해 봄, 여름, 가을, 겨울 계절 별로 미세먼지(PM10)의 농도에 차이가 있는지 알아보고 싶습니다. 3월 1일부터 5월 31일까지를 ‘spring’, 6월 1일부터 8월 31일까지를 ‘summer’, 9월 1일부터 11월 30일까지를 ‘autumn’, 나머지를 ‘winter’라고 이름 붙이고 각 계절별로 미세먼지 농도의 중앙값과 평균을 계산하는 쿼리를 작성해주세요

  • pm10 농도의 평균값, 소수점 셋째 자리에서 반올림 해 소수점 둘째 자리까지 표시되어야함

출력 컬럼
season: 계절 (’spring’, ‘summer’, ‘autumn’, ‘winter’)
pm10_median: PM10 농도의 중앙값
pm10_average: PM10 농도의 평균

정답 코드

select season, round(median(pm10),2) as pm10_median,round(avg(pm10),2) as pm10_average
from
(select case 
when strftime('%m',measured_at) in ('03','04','05') then 'spring' 
when strftime('%m',measured_at) in ('06','07','08') then 'summer' 
when strftime('%m',measured_at) in ('09','10','11') then 'autumn' 
else 'winter' end as season,pm10
from measurements) t 
group by season;

주의할 점

strftime 에 month을 출력할 때 문자값으로 출력되기 때문에 작은 따옴표를 활용해서 데이터를 입력해야한다.

ex)
where season in (1,2,3) - x
where season in ('01,'02','03') - o

0개의 댓글