20. 미세먼지 수치의 계절간 차이

2024-12-23

WITH base 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,
		measured_at,
		pm10
	FROM
		measurements m
),
ordered AS (
	SELECT
		season,
		pm10,
		ROW_NUMBER() OVER (PARTITION BY season ORDER BY pm10) row_num,
		COUNT(*) over (PARTITION BY season) total_count
	FROM
		base
)
SELECT
	season
	, ROUND(AVG(pm10), 2) AS pm10_average
	, (
		SELECT AVG(od.pm10)
		FROM ordered od
		WHERE od.season = o.season
		AND row_num IN (((total_count + 1) / 2), ((total_count + 2) / 2))
	) AS pm10_median
FROM ordered o
GROUP BY season