Project⚡️/Team Project
[SQL] 서울시 내에 있는 따릉이 데이터 SQL
파카파오
2024. 4. 16. 20:21
# 따릉이 대여소란?
여러 개의 거치대가 모여있는 곳
# 따릉이 거치대란?
자전거 1개 수용 가능
# 데이터 관계
따릉이 거치대 > 따릉이 대여소 > 강남구 / 송파구 / 서초구
따릉이 대여 + 따릉이 반납 > 각 대여소별 이용 횟수
와의 관계를 분석하였다
# 문제
1) rent_data 내에서 구, 정류장이름, 정류장 id를
빌려간 정류장이름, 빌려간 정류장 id, 받은 정류장이름, 받은 정류장를
중복된 행도 그대로 통합하기
SELECT gu, rent_nm, rent_id AS id
FROM rent_data
UNION all
SELECT gu, rtn_nm AS rent_nm, rtn_id AS id
FROM rent_data
- 갯수 세보기
select count(*)
from (
SELECT gu, rent_nm, rent_id AS id
FROM rent_data
UNION all
SELECT gu, rtn_nm AS rent_nm, rtn_id AS id
FROM rent_data
) a
2) 1)의 상태에서
구와 정류장 이름을 그룹으로 묶어서 이용 횟수를 출력하기
출력순서는 구 오름차순, 이용횟수 내림차순으로 출력하기
-> 결과적으로 빌려간정류장, 받은정류장은 따로따로 count해서 더해진
SELECT gu, rent_nm, count(*) as usage_count
FROM (
SELECT gu, rent_nm, rent_id AS id FROM rent_data
UNION all
SELECT gu, rtn_nm AS rent_nm, rtn_id AS id FROM rent_data
) a
GROUP BY 1,2
ORDER BY 1,3 desc
3) 2)의 상태에서
각 구 별로 이용횟수에 대한 일련 번호를 구하시오
단, 순서는 이용 횟수에 대해서 내림차순이다
SELECT gu,
rent_nm,
COUNT(*) AS usage_count,
ROW_NUMBER() OVER (PARTITION BY gu ORDER BY COUNT(*) DESC) AS rnk
FROM (
SELECT gu, rent_nm, rent_id AS id FROM rent_data
UNION all
SELECT gu, rtn_nm AS rent_nm, rtn_id AS id FROM rent_data
) AS combined
GROUP BY gu, rent_nm