문제 URL : https://solvesql.com/problems/daily-arppu/

 

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

 

solvesql.com

 

*문제 저작권으로 인하여 직접 작성한 쿼리문만 첨부

select date(order_purchase_timestamp) as dt,
count(distinct olist_orders_dataset.order_id) as pu,
sum(payment_value) as revenue_daily,
round(sum(payment_value)/count(distinct olist_orders_dataset.order_id), 2) as arppu
from olist_orders_dataset left join olist_order_payments_dataset
on olist_orders_dataset.order_id = olist_order_payments_dataset.order_id
where dt >= '2018-01-01'
group by dt
order by dt

 

중복되는 주문ID가 존재하여 DISTINCT 사용

또한 중복으로 인하여 AVG 함수를 사용하면, 나누어지는 값이 중복을 포함하여 더 크므로 평균값이 기댓값보다 낮게 나옴

이를 해결하고자 (총 금액)/(중복을 제외한 주문건수)로 평균값을 구함

+ Recent posts