WITH
a as (
SELECT
*,
(
CASE
WHEN measured_at BETWEEN '2022-03-01' and '2022-05-31' THEN 'spring'
WHEN measured_at BETWEEN '2022-06-01' and '2022-08-31' THEN 'summer'
WHEN measured_at BETWEEN '2022-09-01' and '2022-11-30' THEN 'autumn'
else 'winter'
end
) as season
FROM
measurements
)
SELECT
season,
median(pm10) pm10_median,
round(avg(pm10), 2) pm10_average
FROM
a
GROUP BY
season
ORDER BY
case
when season = 'spring' then 1
WHEN season = 'summer' then 2
WHEN season = 'autumn' then 3
ELSE 4
end
median(컬럼)
은 컬럼의 중앙값을 구하는 함수이다.
mysql에서는 field 함수를 사용할 수 있지만, solvesql은 sqlite 기반이기 때문에 case when 으로 특정 순서대로 정렬했다.
ORDER BY
case
when season = 'spring' then 1
WHEN season = 'summer' then 2
WHEN season = 'autumn' then 3
ELSE 4
end