문제설명
AIR_POLLUTION 테이블은 전국의 월별 미세먼지 정보를 담은 테이블입니다. AIR_POLLUTION 테이블의 구조는 다음과 같으며 LOCATION1, LOCATION2, YM, PM_VAL1, PM_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문을 작성해주세요. 이때, 평균 미세먼지 오염도와 평균 초미세먼지 오염도의 컬럼명은 각각 PM10, PM2.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 타입으로 변환
'SQL > 코딩테스트' 카테고리의 다른 글
[코딩테스트] SQL - 가격대 별 상품 개수 구하기 (0) | 2024.11.04 |
---|---|
[코딩테스트] SQL - 카테고리 별 상품 개수 구하기 (0) | 2024.11.01 |
[코딩테스트] SQL - 진료과별 총 예약 횟수 출력하기 (0) | 2024.11.01 |
[코딩테스트] SQL - DATETIME에서 DATE로 형 변환 (0) | 2024.11.01 |
[코딩테스트] SQL - 성분으로 구분한 아이스크림 총 주문량 (0) | 2024.10.30 |