SQL 문제풀이

leetcode - 1173. Immediate Food Delivery I

Jerrytwo 2022. 7. 1. 15:57

난이도 : Easy

 

Table: Delivery

+-----------------------------+---------+
| Column Name                 | Type    |
+-----------------------------+---------+
| delivery_id                 | int     |
| customer_id                 | int     |
| order_date                  | date    |
| customer_pref_delivery_date | date    |
+-----------------------------+---------+
delivery_id is the primary key 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.

Write an SQL query to find the percentage of immediate orders in the table, rounded to 2 decimal places.

 

 

case문을 활용한 방법
SELECT ROUND(SUM(CASE WHEN order_date = customer_pref_delivery_date
                      THEN 1
                      ELSE 0
             END) * 100 / COUNT(order_date), 2) immediate_percentage
FROM Delivery

Accepted (10.27%)

 

 

case문을 활용하지 않은 방법
SELECT ROUND(SUM(order_date = customer_pref_delivery_date) * 100
             / COUNT(order_date), 2) immediate_percentage
FROM Delivery

Accepted (21.24%)