rubus0304 님의 블로그

[데이터분석] 코드카타 97 본문

Data Analyst/daily

[데이터분석] 코드카타 97

rubus0304 2024. 11. 6. 09:57

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