2024. 10. 19. 18:00ㆍSQL 고득점 Kit/String, Date
https://school.programmers.co.kr/learn/courses/30/lessons/284530
문제 설명
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로 해 주시고, 값은 소수 셋째 자리에서 반올림해주세요.
결과는 연도를 기준으로 오름차순 정렬해주세요.
예시
AIR_POLLUTION 테이블이 다음과 같을 때
LOCATION1 | LOCATION2 | YM | PM_VAL1 | PM_VAL2 |
경기도 | 수원 | 2018-01-01 | 48 | 27 |
경기도 | 수원 | 2018-02-01 | 51 | 30 |
경기도 | 수원 | 2018-03-01 | 52 | 21 |
경기도 | 수원 | 2018-04-01 | 52 | 20 |
경기도 | 수원 | 2018-05-01 | 45 | 19 |
경기도 | 수원 | 2018-06-01 | 39 | 17 |
경기도 | 수원 | 2018-07-01 | 27 | 15 |
경기도 | 수원 | 2018-08-01 | 26 | 16 |
경기도 | 수원 | 2018-09-01 | 21 | 12 |
경기도 | 수원 | 2018-10-01 | 31 | 18 |
경기도 | 수원 | 2018-11-01 | 56 | 21 |
경기도 | 수원 | 2018-12-01 | 44 | 27 |
서울시 | 노원 | 2018-11-01 | 25 | 45 |
경기도 | 용인 | 2018-02-01 | 14 | 21 |
SQL을 실행하면 다음과 같이 출력되어야 합니다.
YEAR | PM10 | PM2.5 |
2018 | 41 | 20.25 |
수원 지역의 연도 별 평균 미세먼지 오염도와 평균 초미세먼지 오염도를 조회하는 문제입니다.
조건이 여러 개지만 하나씩 하다보면 쉽습니다. 조건을 나열해보자면
1. 수원 지역 - LOCATION2에 수원이 있어야 함
2. 연도별 - GROUP BY를 사용해 그룹화
3. 평균 미세먼지 오염도 - AVG를 사용해 평균 도출
4. 평균 초미세먼지 오염도 - AVG를 사용해 평균 도출
총 4가지입니다.
각각의 조건에 맞도록 정답 코드를 작성해보겠습니다.
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 LIKE "%수원%"
GROUP BY YEAR
ORDER BY YEAR ASC;
하나씩 하다보면 쉽게 풀 수 있습니다.
'SQL 고득점 Kit > String, Date' 카테고리의 다른 글
[String, Date] 분기별 분화된 대장균의 개체 수 구하기 (1) | 2024.10.21 |
---|---|
[String, Date] 한 해에 잡은 물고기 수 구하기 (0) | 2024.10.20 |
[String, Date] DATETIME에서 DATE로 형 변환 (0) | 2024.10.18 |
[String, Date] 카테고리 별 상품 개수 구하기 (0) | 2024.10.17 |
[String, Date] 오랜 기간 보호한 동물(2) (4) | 2024.10.16 |