rubus0304 님의 블로그
[데이터분석] 코드카타 97 본문
97. Immediate Food Delivery II
https://leetcode.com/problems/immediate-food-delivery-ii/description/
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.
(시도) 일단, 배달선호요일이 주문일과 같은 경우 immediate, 다른 경우 scheduled 로 지정하기.
근데 고객의 첫 번재 주문이 첫 주문일에 만들어졌고 그게 그 고객의 정확한 첫 주문일이라는 전제하에,
모든 고객의 첫 번째 주문의 immediate 퍼센티지를 구하는 것은...? 분명 서브쿼리 써야할 듯..악 10분 남았
select if (customer_pref_delivery_date = order_date, 'immediate', 'scheduled')
from Delivery
(정답)
select round(avg(customer_pref_delivery_date = order_date)*100,2) immediate_percentage
from Delivery
where (customer_id, order_date) in (
select customer_id,
min(order_date)
from Delivery
group by 1)
볼 때마다 where 절로 조건 주고 그 친구들이 in 안에 select로 지정하고 그룹바이까지 하는 구문은 신기함..
나도 조만간 저 구문을 자유롭게 쓰고싶다.
'Data Analyst > daily' 카테고리의 다른 글
[데이터분석] 코드카타 99 (0) | 2024.11.11 |
---|---|
[데이터 분석] 코드카타 98 (0) | 2024.11.08 |
[데이터분석] 코드카타 96 (3) | 2024.11.05 |
[데이터분석] 코드카타 95 (3) | 2024.11.04 |
[데이터분석] 코드카타 94 (2) | 2024.11.01 |