문제설명

문제바로가기

AIR_POLLUTION 테이블은 전국의 월별 미세먼지 정보를 담은 테이블입니다. AIR_POLLUTION 테이블의 구조는 다음과 같으며 LOCATION1LOCATION2YMPM_VAL1PM_VAL2은 각각 지역구분1, 지역구분2, 측정일, 미세먼지 오염도, 초미세먼지 오염도를 의미합니다.

Column name  Type Nullable
LOCATION1 VARCHAR FALSE
LOCATION2 VARCHAR FALSE
YM DATE FALSE
PM_VAL1 NUMBER FALSE
PM_VAL2 NUMBER FALSE

 

 

문제

AIR_POLLUTION 테이블에서 수원 지역의 연도 별 평균 미세먼지 오염도와 평균 초미세먼지 오염도를 조회하는 SQL문을 작성해주세요. 이때, 평균 미세먼지 오염도와 평균 초미세먼지 오염도의 컬럼명은 각각 PM10PM2.5로 해 주시고, 값은 소수 셋째 자리에서 반올림해주세요.
결과는 연도를 기준으로 오름차순 정렬해주세요.

 

 

코드

-- 코드를 작성해주세요
SELECT YEAR(YM) AS YEAR,  
       ROUND(AVG(PM_VAL1), 2) AS 'PM10', 
       ROUND(AVG(PM_VAL2), 2) AS 'PM2.5'
FROM AIR_POLLUTION 
WHERE LOCATION1 = '경기도' AND
LOCATION2 = '수원' 
GROUP BY YEAR(YM)
ORDER BY YEAR(YM)

 

 

 

오답처리된 답안

SELECT 
DATE_FORMAT(YM, "%Y") 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;

 

 

동일한 결과 값이 나오는데 정답이 틀리게 나왔다

 

DATE_FORMAT

날짜 값을 지정된 형식의 문자열로 변환

VARCHAR나 CHAR 타입의 문자열

 

 

YEAR, MONTH,DAY

날짜 값에서 연도 부분만 숫자 형태로 추출

연도 부분을 INTEAGER 타입으로 변환