1. 질문
<배경> 최근 들어 미세먼지가 부쩍 이슈화 되고 있다. 하지만 대다수의 사람들은 지하철 실내 공기가 실외 공기보다 좋지 않다는 것을 인지하지 못하고 있다. 따라서 지하철의 실내 수치가 실외 수치보다 얼마나 높은지 조사하고자한다.
<문제>.
1. 대기의 초미세먼지(pm10) 보다 지하철 역 내의 초미세먼지 수치가 더 높다고 한다. 실제로 그러한지 확인 한 후,
2. 역사의 공기 질 (PM10+CO2+HCHO+CO)이
나쁜 순서대로 출력하는데, 호선 별 1~5위, 호선 별 1위만, 그리고
지하철 전체 1~10위를 출력하시오.
3. 또한 지하철 역사의 이산화탄소 수치가 역을 이용하는 사용자 수와 비례하는지 확인하시오.
4. 아래 미세먼지 기준 표를 참고하여 초미세먼지 기준이 '아주나쁨'에 해당하는 지하철 역을 출력하시오.
2. 참고data
3. 테이블생성스크립트
PM10: 초미세먼지
CO2: 이산화탄소
HCHO: 포름알데히드; 새집 증후군의 가장 대표적인 물질 중 하나, 건축 자제에서 많이 방출되는데 접착제와 도로 등에 포함되어있고 담배나 매연에서 찾아볼 수 있다.
CO: 일산화탄소
지하철 역 내부의 공기의 질을 결정하는 대표적인 네가지 원소로 지하철 역사 내 공기질을 분석할 수 있도록 테이블을 생성한다.
--테이블 생성--
CREATE TABLE fd2016
(s_line NUMBER(10),
s_name VARCHAR2(20),
PM10 NUMBER(10,2),
CO2 NUMBER(10,2),
HCHO NUMBER(10,2),
CO NUMBER(10,2));
SELECT *
FROM FD2016;
--지하철역 이용자 수를 나타낸 테이블 생성--
CREATE TABLE SUBWAY2
(S_LINE NUMBER(10),
S_NAME VARCHAR2(50),
DAYAVG NUMBER(38,2));
--지하철역 별 공기 질 평균을 알아보기 위해
view 생성--
각 컬럼의 수치가 높을 수록 공기의 질이 나쁘다는 것을 의미하기 때문에, 간단하게 4개의 컬럼을 합해서 평균을 내고 그 평균의 값이 높을 수록 공기가 좋지 않다는 가정하에 아래와 같이 VIEW 를 생성해준다.
Create view avgofsubway
As select s_line, s_name, (pm10+co2+hcho+co)/4 as
"평균"
From fd2016
Order by s_line;
공기질을 나타낸 테이블에서 CO2 컬럼과 지하철 역 사용자 수를 나타낸 테이블을 조인하여
새로운 VIEW
를 생성해준다.
CREATE VIEW CO2ANDPPL
AS
SELECT F.S_LINE, F.S_NAME, F.CO2, S.DAYAVG
FROM FD2016 F, SUBWAY2 S
WHERE F.S_NAME=S.S_NAME
ORDER BY S_LINE;
4. 분석쿼리 & 결과표시
지하철 초미세먼지
수치의 평균값을 알아보기 위한 SQL 쿼리
SELECT
ROUND(AVG(PM10)) AS “초미세먼지 평균”
FROM FD2016;
2016년 5월을 표본으로 한 대기 미세먼지 수치 평균값
지하철> 대기
각 호선 별 공기 질 측정값의 평균값 1~5순위를
알아보기 위한 쿼리
SELECT *
From (Select S_LINE, S_NAME, Rank()Over(Partition
by S_LINE Order By 평균 DESC)
From avgofsubway)
Where 순위 between 1
and 5;
호선 별 순위가 1위인 지하철역 8개를 출력
SELECT *
FROM (SELECT S_LINE, S_NAME,
RANK()OVER(PARTITION BY S_LINE ORDER BY 평균 DESC)
FROM AVGOFSUBWAY)
WHERE 순위 =1
지하철 역사 전체에서 공기질이 나쁜 순서대로 순위 1~10를
출력
select *
from(select s_line, s_name, rank()over(order by 평균 desc) as "순위"
from avgofsubway)
where 순위 between 1 and 10;
지하철역 사용자 수와 CO2량의 관계가 비례하는지 알아보기 위하여, CO2 수치의 순위와
지하철 역 이용자수의 순위를 비교한다.
CO2 순위
|
지하철역 이용자수 순위
|
SELECT S_LINE, S_NAME, RANK()OVER(ORDER BY CO2 DESC)
FROM CO2ANDPPL;
|
SELECT S_LINE, S_NAME, RANK()OVER(ORDER BY DAYAVG
DESC)
FROM CO2ANDPPL;
|
|
|
초 미세먼지 기준 표
한국기준> 초미세먼지가 '매우 나쁨'인 지하철 역
select s_line, s_name, dense_rank()over(order by pm10 desc)
from fd2016
where pm10 >=101;
한국 기준> 초미세먼지가 '좋음'인 지하철 역
Select s_line, s_name, dense_rank()over(order by pm10 desc)
from fd2016
where pm10 <= 15;
연습문제> 초미세먼지와 지하철역 이용자수의 관계가 어떠한지 분석하시오.
분석을 위한 VIEW 생성
create view pm10andppl
as
select f.s_line, f.s_name, f.pm10, s.dayavg
from fd2016 f, subway2 s
where f.s_name=s.s_name
order by s_line;
SELECT S_LINE,S_NAME,RANK()OVER(ORDER BY PM10 DESC)
FROM PM10ANDPPL;
|
SELECT S_LINE,S_NAME,RANK()OVER(ORDER BY dayavg
DESC)
FROM PM10ANDPPL;
|
|
|
결과> 순위가 일치하는 부분이 거의 없는 것 으로 보아 초미세먼지와
인구수와의 관계는 유의하지않은 것 으로 보인다.
연습문제2> 위의 표를 참고하는데 WHO의 기준에서 '매우나쁨'인 이지만 에어코리아의 기준으로는 '나쁨'인 지하철 역들을 출력하시오.
select s_line, s_name, rank()over(order by pm10 desc)
from fd2016
where pm10>=51
minus
select s_line, s_name, rank()over(order by pm10 desc)
from fd2016
where pm10>=101;
fd2016 의 254 개 데이터중 237개의 지하철 역이 초미세먼지 수치가 '매우나쁨' 이다.
5. 결론
결과:
지하철 역사 내 공기가 바깥 공기 보다 좋지 않다. 20위안에 드는 지하철 역 중에서 1,2 위인 강남과 홍대입구역 만 관련이 있어보이고 나머지 역은 크게 관련이 있지 않은 것으로 보인다.
또한 초 미세먼지 기준 표를 보아, PM10 수치가 '나쁨' 인 지하철 역 중에서도 순위가 1위인 지하철역은 버티고개랑 공덕역으로 나타났다.