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

sehyunny·2023년 6월 5일

mySQL

목록 보기
16/26

2017년 1월 한 달 동안 발생한 주문의 배송 예측이 정확했는지 분석을 하려고 합니다.
고객의 구매 일자별로 배송 예정 시각 안에 고객에게 도착한 주문과, 배송 예정 시각이 지나서 고객에게 도착한 주문을 각각 집계하는 쿼리를 작성해주세요.
배송 완료 또는 배송 예정 시각 데이터가 없는 경우는 계산에서 제외합니다.
계산 결과는 구매 날짜를 기준으로 오름차순 정렬되어야 하고, 아래 컬럼을 포함해야 합니다.

SELECT DATE(order_purchase_timestamp) AS purchase_date,
       COUNT(DISTINCT CASE WHEN order_estimated_delivery_date >= order_delivered_customer_date THEN customer_id ELSE NULL END) AS success,
       COUNT(DISTINCT CASE WHEN order_estimated_delivery_date < order_delivered_customer_date THEN customer_id ELSE NULL END) AS fail
FROM olist_orders_dataset 
WHERE order_purchase_timestamp BETWEEN '2017-01-01 00:00:00' AND '2017-01-31 23:59:59'
AND order_delivered_customer_date IS NOT NULL
AND order_estimated_delivery_date IS NOT NULL
GROUP BY purchase_date

☑️ point

  1. 정해진 기간의 주문수만 조회하기 위한 WHERE 조건절 작성
  2. 배송 완료/배송 예정 시각 데이터가 없는 경우 계산에서 제외하기 위한 WHERE 조건절 추가 작성
  3. 배송 예정 시각 > 배송 완료 시각일 경우 -> 배송 예정 시각 이전에 배송이 완료되었음을 의미하므로 'success'
    배송 예정 시각 < 배송 완료 시각일 경우 -> 배송 예정 시각 이후에 배송이 완료되었음을 의미하므로 'fail'

0개의 댓글