Coding Test/SQL Coding Test

[프로그래머스 / SQL] - 연도 별 평균 미세먼지 농도 조회하기

nam_ji 2024. 10. 29. 12:18

연도 별 평균 미세먼지 농도 조회하기 - LV.2

문제

  • 전국 월별 미세먼지 정도를 담은 AIR_POLLUTION 테이블이 있습니다.
  • AIR_POLLUTION 테이블은 LOCATION1, LOCATION2, YM, PM_VAL1, PM_VAL2의 컬럼이 존재하고 각각 지역구분1, 지역구분2, 측정일, 미세먼지 오염도, 초미세먼지 오염도를 의미합니다.
  • 문제는
    1. 수원지역의 연도 별 평균 미세먼지 오염도와 평균 초미세먼지 오염도를
    2. 평균 미세먼지 오염도는 PM10, 평균 초미세먼지 오염도는 PM2.5로 하고,
    3. 값은 소수 셋째 자리에서 반올림하여
    4. 연도 기준 오름차순 정렬하여 출력하는 문제입니다.


프로그래머스 코드

  • 우선 조회해야 하는 컬럼을 SELECT 뒤에 작성합니다.
  • 여기서 년도는 월과 일을 제외하고 출력되어야 하고 컬럼명은 YEAR 출력되어야 하기 때문에 YEAR 함수로 년도만 나타낼 수 있도록 하고 AS로 YEAR로 출력되도록 했습니다.
  • PM_VAL1과 PM_VAL2 또한 평균 값을 소수점 세째자리에서 반올림 해야 하기 때문에 AVG 함수로 각각의 평균을 구하고 ROUND 함수로 소수점 세째자리에서 반올림 할 수 있도록 하고 AS로 각각 PM10, PM2.5로 나타낼 수 있도록 했습니다. (AS로 설정하는 값에 특수문자 .과 같은 값은 들어 갈 수 없기 때문에 ``(백틱)을 사용했습니다.)
  • 이제 FROM을 이용하여 조회하고자 하는 테이블을 작성하고
  • WHERE 조건으로 수원 지역을 선택했습니다.
  • GROUP BY를 이용하여 년도 기준으로 묶어서 출력될 수 있게 하고
  • ORDER BY를 통해 정렬을 해줬습니다.
-- 코드를 작성해주세요
SELECT 
    YEAR(YM) AS YEAR,
    ROUND(AVG(PM_VAL1), 2) AS PM10,
    ROUND(AVG(PM_VAL2), 2) AS `PM2.5`
FROM 
    AIR_POLLUTION
WHERE 
    LOCATION2 = '수원'
GROUP BY YEAR
ORDER BY YEAR;