-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
4set 2번 문제
21.04.01 20:00 작성 조회수 82
1
안녕하세요.
아래 쿼리와 같이 SUM(CASE WHEN Status != 'completed'가 아닌
SUM(CASE WHEN Status = 'cancelled_by_driver ' 를 하면 틀린 답이라고 나옵니다.
같은 내용인거 같은데 왜 틀린지를 모르겠네요 ㅠ 확인해 주시면 감사하겠습니다.
SELECT Day, ROUND(rate/total,2) AS `Cancellation Rate`
FROM (
SELECT a.Request_at AS Day
, SUM(CASE WHEN Status = 'cancelled_by_driver ' THEN 1 ELSE 0 END) AS rate
, COUNT(*) as total
FROM Trips a
INNER JOIN Users uc ON a.Client_Id = uc.Users_Id
INNER JOIN Users ud ON a.Driver_Id = ud.Users_Id
WHERE a.Request_at BETWEEN '2013-10-01' AND '2013-10-03'
AND uc.Banned = 'No'
AND ud.Banned = 'No'
GROUP BY 1
) t
답변을 작성해보세요.
1
지식공유자 J
지식공유자2021.04.24
Status의 값은 'completed', 'cancelled_by_driver', 'cancelled_by_client' 이렇게 3가지가 있습니다.
취소율을 구하려면 드라이버에 의한 취소 건과 클라이언트에 의한 취소 건을 모두 포함해야 하는데,
작성하신 것처럼 CASE WHEN Status = 'cancelled_by_driver' 라고 하면 'cancelled_by_client'의 데이터는 포함되지 않습니다.
답변 1