Contents
내가 작성한 쿼리
고객이 선호하는 배송 날짜가 주문 날짜와 같으면 주문을 즉시 처리하고, 그렇지 않으면 예약 처리라고 합니다. 고객의 첫 번째 주문은 고객이 가장 먼저 주문한 날짜가 있는 주문입니다. 고객이 정확히 한 번의 첫 번째 주문을 가지고 있다는 것이 보장됩니다. 모든 고객의 첫 번째 주문에서 소수점 2자리 반올림된 즉시 주문 비율을 구하는 솔루션을 작성하세요.
내가 작성한 쿼리
MySQL, Oracle
-- 고객별 첫 주문을 찾는 CTE WITH FirstOrders AS ( SELECT * FROM Delivery d WHERE order_date = ( -- 동일 고객의 주문 중 가장 이른 주문 날짜만 선택 SELECT MIN(order_date) FROM Delivery WHERE customer_id = d.customer_id ) ) SELECT ROUND( -- 즉시 주문(= 주문일과 선호 배송일이 같은 경우)인 건수 합계 × 100 나누기 전체 고객 수 SUM(CASE WHEN order_date = customer_pref_delivery_date THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2 ) AS immediate_percentage FROM FirstOrders;
Share article