728x90

🔗 Problem Link

 

Immediate Food Delivery II - LeetCode

Can you solve this real interview question? Immediate Food Delivery II - Table: Delivery +-----------------------------+---------+ | Column Name | Type | +-----------------------------+---------+ | delivery_id | int | | customer_id | int | | order_date | d

leetcode.com


❔Thinking

  • 고객이 원하는 배송일자와 주문일자가 일치하면 "immediate"
  • 각 고객들의 첫 주문 가운데, "immediate"의 비율을 구하는 문제

💻Solution

SELECT
    ROUND(SUM(CASE WHEN DATEDIFF(order_date, customer_pref_delivery_date) = 0 THEN 1 ELSE 0 END) / COUNT(customer_id) * 100, 2) AS immediate_percentage
FROM
    Delivery
WHERE
    (customer_id, order_date) IN (SELECT customer_id, MIN(order_date) FROM Delivery GROUP BY customer_id)

🗝️keypoint

  1. WHERE절에서 subquery를 활용해 고객의 첫 주문을 확인할 수 있다.
  2. 날짜의 일치 여부는 'DATEDIFF를 통해 차이가 0인 것'

+ Recent posts