업무에 파이썬 활용할 줄 알기

SQL 5주차 본문

SQL/[스파르타] 엑셀보다 쉽고 빠른 SQL

SQL 5주차

SEO 데이터분석가 2023. 11. 23. 10:20

5-1 Subquery, JOIN 복습하고, 이번 수업 내용 맛보기

5-2 조회한 데이터에 아무 값이 없다면 어떻게 해야할까

5-3 조회한 데이터가 상식적이지 않은 값을 가지고 있다면 어떻게해야할까

5-4 [실습] SQL로 Pivot Table 만들어보기

5-5 업무 시작을 단축시켜 주는 마법의 문법 (Window Function - RANK, SUM)

5-6 날짜 포맷과 조건까지 SQL로 한번에 끝내기 (포맷 함수)

5-7 5주차 끝 & 숙제 안내

숙제 음식 타입별, 연령별 주문건수 pivot view 만들기

 

5-1 Subquery, JOIN 복습하고, 이번 수업 내용 맛보기

데이터에서 예상하지 못한 값이 나왔을 때 (이상한 값, 값이 없음 등), 분석에 적절하게 처리한다

SQL로 엑셀에서 자주 사용하는 형태로 데이터를 만든다

업무에 활용할 수 있는 다양한 SQL 심화 문법을 익힌다

 

예상하지 못한 값이 Query 결과에 나올 때 어떻게 처리해야 할까?

엑셀에서 해야하는 Pivot, SQL로 한 번에 구현할 수 있을까?

SQL로 이런 것까지 할 수 있었다니! 업무 시간이 엄청 줄어들 것 같은데!

5-2 조회한 데이터에 아무 값이 없다면 어떻게 해야할까

[방법1] 없는 값을 제외해주기

<if문 활용> 

 

<where문 활용>

where문 잘 이해가 안감. left join을 썼기 때문에

null 값을 다 지웠다고 하더라도 left join하는 과정에서 null값이 만들어 질 수 있는거 아닌가?

 

 

[방법2] 다른 값을 대신 사용하기

<if문 활용>

 

<coalesce문 활용>

b.age 컬럼의 값이 없으면 20으로 대체해줘

5-3 조회한 데이터가 상식적이지 않은 값을 가지고 있다면 어떻게해야할까

[방법] 조건문으로 값의 범위를 지정하기

 

 

5-4 [실습] SQL로 Pivot Table 만들어보기

1) [실습] 음식점별 시간별 주문건수 Pivot Table 뷰 만들기 (15~20시 사이, 20시 주문건수 기준 내림차순)

base data: 음식점별 시간별 주문건수

※피봇뷰를 만들어주기 위해서 max값을 구해준다. 정도로만 이해하고 넘어가기

※avg, sum, max처럼 계산하는 함수가 들어갈 때는 group by를 써주어야한다

 

2) [실습] 성별, 연령별 주문건수 Pivot Table 뷰 만들기 (나이는 10~59세 사이, 연령 순으로 내림차순)

 

My solution

 

 

5-5 업무 시작을 단축시켜 주는 마법의 문법 (Window Function - RANK, SUM)

  • window_function: 각 행의 관계를 정의하기 위한 함수로 그룹 내의 연산을 쉽게 만들어준다.
    • e.g.
    • 한식 식당 중에서 주문건수가 많은 순으로 순위를 매기고 싶을 때
    • 한식 식당 전체 주문건수 중에서 A 식당이 차지하는 비율을 알고 싶을 때
    • 2건 이상 주문을 한 소비자 중에, 처음 주문한 식당과 2번째로 주문한 식당을 같이 조회할 때

 

  • windonw funtion의 기본구조
window_function(argument) over (partition by 그룹 기준 컬럼 order by 정렬 기준)

 

  • N번째까지의 대상을 조회하고 싶을 때, Rank

[실습] 음식 타입별로 주문 건수가 가장 많은 상점 3개씩 조회하기

 

 

  • 전체에서 차지하는 비율, 누적합을 구할 때, Sum
    • 누적합이 필요하거나 카테고리별 합계 컬럼과 원본 컬럼을 함께 이용할 때 유용하게 사용할 수 있음

[실습] 각 음식점의 주문건이 해당 음식 타입에서 차지하는 비율을 구하고, 주문건이 낮은 순으로 정렬했을 때 누적 합 구하기

5-6 날짜 포맷과 조건까지 SQL로 한번에 끝내기 (포맷 함수)

w(요일) 0=일요일, 1=월요일

 

[실습2] 년도별 3월의 주문건수 구하기

 

 

 

5-7 5주차 끝 & 숙제 안내

숙제 음식 타입별, 연령별 주문건수 pivot view 만들기

*주의: subquery에서 group by 1 만 하는게 아니라 group by 1, 2로 하는 것 잊지말기

 

group by 1만 했을 경우

'SQL > [스파르타] 엑셀보다 쉽고 빠른 SQL' 카테고리의 다른 글

SQL 4주차  (0) 2023.11.22
SQL 3주차  (0) 2023.11.15
SQL 2주차  (0) 2023.11.14