SQL/문제풀이
Immediate Food Delivery II _ Medium. LeetCode *
데이터분석가 이채은
2025. 1. 3. 13:17
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
);
- AVG(condition) 활용법:
- SQL에서 조건식(condition)을 AVG()에 넣으면, 조건이 참인 행들의 비율을 계산할 수 있다.
- 예: AVG(order_date = customer_pref_delivery_date)는 조건이 참인 경우 1로 간주하고, 평균을 계산하여 비율을 반환.
- WHERE (column1, column2) IN (subquery)의 사용법:
- 여러 열의 조합을 서브쿼리와 비교할 때 IN을 사용할 수 있다.
- WHERE (customer_id, order_date) IN (SELECT customer_id, MIN(order_date)...)는 고객별 첫 주문만 필터링한다.
- 서브쿼리를 사용하여 고객의 첫 주문을 정확히 찾는 방법을 익혀야 한다.
- AVG()와 조건식을 결합해 비율을 계산하는 방법을 알아야 한다.