최대 1 분 소요

문제 링크

정답

SELECT
    t.request_at as 'Day',
    ROUND(
        SUM(t.status != 'completed') / 
        COUNT(*)
    , 2) 'Cancellation Rate'
FROM Trips t
LEFT JOIN Users c
ON t.client_id = c.users_id
LEFT JOIN Users d
ON t.driver_id = d.users_id
AND t.request_at BETWEEN '2013-10-01' AND '2013-10-03'
WHERE c.banned = 'No' AND D.banned = 'No'
GROUP BY t.request_at

✅ Point

  • 분자: 분모 조건을 만족하면서, 취소된 개수
  • 분모: unbanned user가 요청한 전체 개수
    • WHERE 로 unbanned 된 request만 가져오기