[solvesql] 미세먼지 수치의 계절간 차이

yenpkr·2025년 3월 25일
0

sql

목록 보기
69/91

문제

제출

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()

median(컬럼) 은 컬럼의 중앙값을 구하는 함수이다.

✅ order by 특정 순서대로

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

0개의 댓글