select t4.day asDay, CAST(ifNULL(t3.CancellationRate, 0)*1./t4.CancellationRate asdecimal(8,2)) as'Cancellation Rate' from (select request_at asDay, count(request_at) as CancellationRate from ( select client_id, driver_id, request_at from Trips where EXISTS( select users_id from Users where banned ='No' and client_id = users_id ) andEXISTS( select users_id from Users where banned ='No' and driver_id = users_id ) )t1 groupby request_at)t4 leftjoin (select request_at asDay, count(request_at) as CancellationRate from ( select client_id, driver_id, request_at from Trips where status <>'completed' andEXISTS( select users_id from Users where banned ='No' and client_id = users_id ) andEXISTS( select users_id from Users where banned ='No' and driver_id = users_id ) )t2 groupby request_at)t3 on t4.Day = t3.Day where t4.day in ('2013-10-01','2013-10-02','2013-10-03')
寻找解法时找到知识点
join语法
join语法之前写起来一直报错,错误还很多,要使用join语法就按照要求将查询写出来
1 2 3 4 5 6 7 8
select column1,column2,column3··· from (··· 一个子查询)as t1 left,right,inner,join (··· 一个子查询) as t2 on t1. = t2. (可以有多个)判断条件 where groupby 等等