AIR_POLLUTION 테이블은 LOCATION1, LOCATION2, YM, PM_VAL1, PM_VAL2의 컬럼이 존재하고 각각 지역구분1, 지역구분2, 측정일, 미세먼지 오염도, 초미세먼지 오염도를 의미합니다.
문제는
수원지역의 연도 별 평균 미세먼지 오염도와 평균 초미세먼지 오염도를
평균 미세먼지 오염도는 PM10, 평균 초미세먼지 오염도는 PM2.5로 하고,
값은 소수 셋째 자리에서 반올림하여
연도 기준 오름차순 정렬하여 출력하는 문제입니다.
프로그래머스 코드
우선 조회해야 하는 컬럼을 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;