#sql
Вопрос:
Это второй раз, когда я столкнулся с проблемой, что ответ был «Принят», но был идентифицирован как неправильный в «Отправить».
Напишите SQL-запрос, чтобы узнать частоту отмены запросов с незарегистрированными пользователями (как клиент, так и драйвер не должны быть заблокированы) каждый день между «2013-10-01» и «2013-10-03».
Trips table:
---- ----------- ----------- --------- --------------------- ------------
| Id | Client_Id | Driver_Id | City_Id | Status | Request_at |
---- ----------- ----------- --------- --------------------- ------------
| 1 | 1 | 10 | 1 | completed | 2013-10-01 |
| 2 | 2 | 11 | 1 | cancelled_by_driver | 2013-10-01 |
| 3 | 3 | 12 | 6 | completed | 2013-10-01 |
| 4 | 4 | 13 | 6 | cancelled_by_client | 2013-10-01 |
| 5 | 1 | 10 | 1 | completed | 2013-10-02 |
| 6 | 2 | 11 | 6 | completed | 2013-10-02 |
| 7 | 3 | 12 | 6 | completed | 2013-10-02 |
| 8 | 2 | 12 | 12 | completed | 2013-10-03 |
| 9 | 3 | 10 | 12 | completed | 2013-10-03 |
| 10 | 4 | 13 | 12 | cancelled_by_driver | 2013-10-03 |
---- ----------- ----------- --------- --------------------- ------------
Users table:
---------- -------- --------
| Users_Id | Banned | Role |
---------- -------- --------
| 1 | No | client |
| 2 | Yes | client |
| 3 | No | client |
| 4 | No | client |
| 10 | No | driver |
| 11 | No | driver |
| 12 | No | driver |
| 13 | No | driver |
---------- -------- --------
Стандартный ответ
Result table:
------------ -------------------
| Day | Cancellation Rate |
------------ -------------------
| 2013-10-01 | 0.33 |
| 2013-10-02 | 0.00 |
| 2013-10-03 | 0.50 |
------------ -------------------
Мой код (Oracle SQL)
with base as (
select
Id
, Client_Id
, Driver_Id
, case
when Status like '%completed%' then 1
else 0
end completed
, Request_at
from Trips left
where Client_Id in (select Users_Id from Users where Banned = 'No')
and Driver_Id in (select Users_Id from Users where Banned = 'No')
)
select
Request_at as Day
, round((count(Id) - sum(completed)) / count(Id), 2) as "Cancellation Rate"
from base
group by Request_at
order by Request_at
My output
{"headers": ["DAY", "Cancellation Rate"], "values": [["2013-10-01", 0.33], ["2013-10-02", 0], ["2013-10-03", 0.5]]}
I don’t understand why I failed in submission.