본문 바로가기
데이터분석 교육 (제로베이스)

[스터디 노트] 23번째 SQL 분석 빅쿼리 (241016), 제로베이스 데이터 분석 스쿨 내용

by davidlds 2024. 10. 16.
반응형

제로베이스 데이터 분석 스쿨 내용에 대한 기록이다.

23번째도 SQL 분석 빅쿼리 강의이다.

 

이번까지 빅쿼리 강의를 마무리 짓고

다음부터는 빅쿼리로 만든 데이터셋을 태블로로 시각화 한다.

 

대부분 실습하는 내용이라 메모가 많지는 않다.

 

[날짜별 지표 쿼리]

  • 연도별 집계하기
    • 2번 셀렉트에 extract(year from ord.order_approved_at) as ord_year, 추가
    • 3번 셀렉트에 ord_year 추가
    • 3번 맨아래에 group by ord_year와 order by ord_year 적기

[실습: 대시보드 데이터 만들기]

[데이터셋 준비]

  • 쿼리 수정
  • 1번
    • with tb as ( select item.order_id, sum(item.price) as ord_amt, count(item.order_item_id) as prd_cnt from olist.olist_order_items as item group by item.order_id )
  • 2번
    • , base as ( select date(ord.order_approved_at) as ord_date, ord.order_id, ord.customer_id, cust.customer_unique_id, tb.ord_amt, tb.prd_cnt, from olist.olist_orders as ord left join olist.olist_customers as cust on ord.customer_id = cust.customer_id inner join tb on ord.order_id = tb.order_id where True and order_status in ('delivered', 'shipped') and order_approved_at is not null )
  • 3번
    • select ord_date, round(sum(ord_amt), 2) as ord_amt, count(distinct order_id) as ord_cnt, sum(prd_cnt) as prd_cnt, round(ifnull(safe_divide(sum(ord_amt), count(distinct order_id)), 0), 2) as avg_ord_amt, round(ifnull(safe_divide(sum(prd_cnt), count(distinct order_id)), 0), 2) as avg_prd_cnt, round(ifnull(safe_divide(sum(ord_amt), count(distinct prd_cnt)), 0), 2) as avg_price, count(distinct customer_unique_id) as cust_cnt, round(ifnull(safe_divide(count(distinct order_id), count(distinct customer_unique_id)), 0), 2) as cust_freq from base group by ord_date order by ord_date
  • 결과 저장 -> 구글시트 저장

깃허브 링크

 

깃허브 빅쿼리 공부 부분 링크

반응형