[leetcode]Trips and Users

select Request_at as Day,round((max(counter)*1.0/count(Request_at)),2) as 'Cancellation Rate'
from (
    select Id,Status,Request_at,
    @counter:=if(@curDate=Request_at and Status <> 'completed',@counter+1,0) as temp_c,# same day
    @counter:=if(@curDate<>Request_at and Status <>'completed',1, @counter) as counter,# different day
    @curDate:=Request_at as curDate
    from (select * from Trips left join Users on Client_Id=Users_Id  where Banned<>'Yes' and request_at >= '2013-10-01' and request_at <= '2013-10-03' order by Request_at) as temp_t,
         (select @count:=0,@curDate:='') as params
    ) as temp_tt
group by Request_at

use test;
create table Trips(Id int auto_increment primary key,Client_Id int,Driver_Id int,City_Id int,Status varchar(50),Request_at date);
create table Users(Users_Id int auto_increment primary key,Banned varchar(10),Role varchar(20));
alter table Users modify column Users_Id int;#丢弃自增

insert into trips(Client_Id,Driver_Id,City_Id,Status,Request_at) values(1,10,1,'completed','2013-10-01'),(2,11,1,'cancelled_by_driver','2013-10-01'),(3,12,6,'completed','2013-10-01'),(4,13,6,'cancelled_by_client','2013-10-01'),(1,10,1,'completed','2013-10-02'),(2,11,6,'completed','2013-10-02'),(3,12,6,'completed','2013-10-02'),(2,12,12,'completed','2013-10-03'),(3,10,12,'completed','2013-10-03'),(4,13,12,'cancelled_by_driver','2013-10-03');
insert into Users(Users_Id,Banned,Role) values(1,' No','client'),(2,'Yes','client'),(3,' No','client'),(4,' No','client'),(10,'No','driver'),(11,'No','driver'),(12,'No','driver'),(13,'No','driver');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值