데이터 분석 기술 블로그

Immediate Food Delivery II _ Medium. LeetCode * 본문

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()와 조건식을 결합해 비율을 계산하는 방법을 알아야 한다.