반응형

@notepad_jj2

츄르사려고 코딩하는집사입니다.


1. [solvesql] 쇼핑몰의 일일 매출액과 ARPPU SQLite

 

2. 문제 출처

https://solvesql.com/problems/daily-arppu/

 

solvesql

© Copyright 2021-2022 solvesql.com

solvesql.com

 

3. 풀이

- OLIST_ORDERS_DATASET(OD) 테이블에서 ORDER_ID를 기준으로 OLIST_ORDER_PAYMENTS_DATASET(PD) 테이블과 INNER JOIN을 한다.

- ORDER_PURCHASE_TIMESTAMP를 YYYYMMDD 형식으로 만들어 2018년 01월 01일 이후의 데이터만 가져온다.

- ORDER_PURCHASE_TIMESTAMP를 기준으로 GROUP BY를 해서, 날짜, 고객 수, 매출액, 평균 금액 컬럼까지 구하면 된다.

- 여기서 고객 수는 A라는 사람이 주문을 3번 했어도 고객은 1명이다.

 

4. 소스 코드

    SELECT STRFTIME('%Y-%m-%d', OD.ORDER_PURCHASE_TIMESTAMP) AS "dt"
         , COUNT(DISTINCT CUSTOMER_ID) AS "pu"
         , ROUND(SUM(PD.PAYMENT_VALUE), 2) AS "revenue_daily"
         , ROUND(SUM(PD.PAYMENT_VALUE) / COUNT(DISTINCT CUSTOMER_ID), 2) AS "arppu"
      FROM OLIST_ORDERS_DATASET OD
INNER JOIN OLIST_ORDER_PAYMENTS_DATASET PD ON OD.ORDER_ID = PD.ORDER_ID
     WHERE STRFTIME('%Y%m%d', OD.ORDER_PURCHASE_TIMESTAMP) >= '20180101'
  GROUP BY STRFTIME('%Y%m%d', OD.ORDER_PURCHASE_TIMESTAMP)
  ORDER BY "dt"

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기