https://solvesql.com/problems/estimated-delivery-date/
[코드]
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월 한 달 동안 으로 범위를 줄여주어야 한다. 조건이 많아 실수하기 쉬웠다.
'SQL 문제' 카테고리의 다른 글
[solvesql_Level3] 지역별 주문의 특징 (0) | 2023.10.14 |
---|---|
[solvesql_Level3] 쇼핑몰의 일일 매출액과 ARPPU (0) | 2023.10.13 |
[solvesql_Level2] 우리 플랫폼에 정착한 판매자 2 (0) | 2023.10.13 |
[해커랭크_Medium] Binary Tree Nodes (0) | 2023.10.11 |
[solvesql_Level2] 일별 블로그 방문자 수 집계 (0) | 2023.10.11 |