SQL 문제

[solvesql_Level3] 배송 예정일 예측 성공과 실패

빙수빈수 2023. 10. 13. 10:35

https://solvesql.com/problems/estimated-delivery-date/

 

https://solvesql.com/problems/estimated-delivery-date/

 

solvesql.com

 

[코드]

select date(order_purchase_timestamp) as purchase_date, 
count(case when date(order_delivered_customer_date) < date(order_estimated_delivery_date) then order_id end) as success,
count(case when date(order_delivered_customer_date) >= date(order_estimated_delivery_date) then order_id end) as fail
from olist_orders_dataset 
where order_delivered_customer_date is not null 
and order_estimated_delivery_date is not null 
and (date(order_purchase_timestamp) between '2017-01-01' and '2017-01-31')
group by purchase_date
order by purchase_date;

 

[고찰] 

이번 문제는 예측 배송일 까지 배송을 완료하지 못한 주문 수를 뽑아내기 위해 case when then end 문을 잘 사용해야 하는 문제였다. 또한 배송 완료 또는 배송 예정 시각 데이터가 없는 경우는 계산에서 제외해야 하며 2017년 1월 한 달 동안 으로 범위를 줄여주어야 한다. 조건이 많아 실수하기 쉬웠다.