[SQL] Immediate Food Delivery II(LEETCODE)❌

Jaewon Lim·2026년 1월 6일

📝 문제 설명

Column NameType
delivery_idint
customer_idint
order_datedate
customer_pref_delivery_datedate

delivery_id is the column of unique values of this table.
The table holds information about food delivery to customers that make orders at some date and specify a preferred delivery date (on the same order date or after it).

If the customer's preferred delivery date is the same as the order date, then the order is called immediate; otherwise, it is called scheduled.

The first order of a customer is the order with the earliest order date that the customer made. It is guaranteed that a customer has precisely one first order.

Write a solution to find the percentage of immediate orders in the first orders of all customers, rounded to 2 decimal places.

The result format is in the following example.

📖 예시

Delivery table:

delivery_idcustomer_idorder_datecustomer_pref_delivery_date
112019-08-012019-08-02
222019-08-022019-08-02
312019-08-112019-08-12
432019-08-242019-08-24
532019-08-212019-08-22
622019-08-112019-08-13
742019-08-092019-08-09

Output:

immediate_percentage
50.00

Explanation:
The customer id 1 has a first order with delivery id 1 and it is scheduled.
The customer id 2 has a first order with delivery id 2 and it is immediate.
The customer id 3 has a first order with delivery id 5 and it is scheduled.
The customer id 4 has a first order with delivery id 7 and it is immediate.
Hence, half the customers have immediate first orders.

💻 코드

내코드

select delivery_id
      ,customer_id
      ,order_date
      ,customer_pref_delivery_date
from delivery
group by customer_id
having min(order_date)

🔍 분석

  • 처음 delivery id 가 1,2,5,7 뽑아야하는데 1,2,4,7 이 뽑힘. 즉, group by 를 먼저 해버리니까 4(2019-08-24)가 5(2019-08-21) 보다 먼저 뽑힘

0개의 댓글