Leetcode PostgreSQL Immediate Food Delivery II

업데이트:

문제

Link

코드

-- Write your PostgreSQL query statement below
SELECT ROUND(AVG(CASE WHEN order_date = customer_pref_delivery_date THEN 1 ELSE 0 END) * 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
)

결과

Link

설명

  1. 고객별 첫 배송이 즉시 배송한 비율을 찾는 문제이다.
    • 비율을 소수점 2자리까지 반환한다.
  2. Delivery에서 고객 별 처음 배송을 찾기 위해서 customer_id를 기준으로 최소 order_date를 찾는다.

  3. 찾은 배송일 중에서 order_date과 customer_pref_delivery_date이 동일한 경우에 대한 평균 값을 소수점 두 자리까지 계산한다.

댓글남기기