Study - Problems(IT)/LeetCode - SQL

1174.Immediate Food Delivery2

Dev.D 2024. 11. 17. 21:36

* Problem

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.


* 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.

 

*Solution

# Write your MySQL query statement below

select round(avg(order_date = customer_pref_delivery_date)*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)