
밴 당하지 않은 유저 중 2013년 10월 1일부터 2013년 10월 3일까지 취소율을 구하라.
[Trip and users]
🔑 핵심 포인트
CTE를 사용하여 밴 당한 유저들을 모두 제외하고, 10월 1일부터 3일까지의 데이터만 남겼다.
그 이후 CTE 테이블을 이용하여 취소율을 구하였다.
WITH CTE AS (
SELECT *
FROM TRIPS
WHERE CLIENT_ID NOT IN (SELECT USERS_ID
FROM USERS
WHERE BANNED = 'Yes')
AND DRIVER_ID NOT IN (SELECT USERS_ID
FROM USERS
WHERE BANNED = 'Yes')
AND REQUEST_AT BETWEEN '2013-10-01' AND '2013-10-03')
SELECT REQUEST_AT AS DAY,
ROUND(IFNULL(SUM(CASE WHEN STATUS LIKE 'CANCELLED%' THEN 1 ELSE 0 END), 0)
/ NULLIF(COUNT(*), 0), 2) AS 'CANCELLATION RATE'
FROM CTE
GROUP BY REQUEST_AT;
쿼리 30분은 상상이 안 가네