这是我第二次遇到这样的问题:答案被“接受”,但在“提交”中被认为是错误的。
问题
在“2013-10-01”和“2013-10-03”之间,每天编写一个sql查询以查找未绑定用户(客户端和驱动程序都不能被禁止)请求的取消率。
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
我的输出
{"headers": ["DAY", "Cancellation Rate"], "values": [["2013-10-01", 0.33], ["2013-10-02", 0], ["2013-10-03", 0.5]]}
我不明白我为什么不服从。
暂无答案!
目前还没有任何答案,快来回答吧!