Leetcode MySQL Trips and Users
업데이트:
문제
코드
# Write your MySQL query statement below
SELECT request_at AS 'Day',
ROUND(COUNT(IF(status != 'completed', TRUE, NULL)) / COUNT(*), 2) AS 'Cancellation Rate'
FROM Trips
WHERE request_at BETWEEN '2013-10-01' AND '2013-10-03'
AND 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'
)
GROUP BY request_at;
결과
설명
-
2013년 10월 01일부터 03일까지 날자 별 취소율을 구하는 문제이다.
-
Trips 테이블에 request_at의 날자가 ‘2013-10-01’부터 ‘2013-10-03’까지 데이터를 조회한다.
-
추가적으로 client_id와 dirver_id가 Users Table 내 banned가 ‘Yes’인 user_id를 제외한다.
-
request_at에 대한 날자 별 데이터를 집계하기 위하여 GROUP BY절을 이용한다.
-
‘Cancellation Rate’를 구하기 위해 status가 completed가 아닌 데이터의 개수와 전체 개수를 나눈 후, 예제와 동일하게 소수점 2자리까지 반올림 하여 표시한다.
댓글남기기