当前位置:网站首页>行程和用户[阅读理解法]

行程和用户[阅读理解法]

2022-08-09 13:00:00 REN_林森

前言

对于一种SQL复杂题类型之一,就是阅读理解题,而解决方式也可以按照阅读理解的方式解决。抽出需求的主干句子,状语定语作为筛选,句子内再套一个句子,那就分层写view。

一、行程与用户

在这里插入图片描述
在这里插入图片描述

二、阅读理解

target:国庆前3天,非禁止用户的取消率,保留2位小数。

1-国庆前3天,where request_at between ‘2013-10-01’ and ‘2013-10-03’
2-非禁止用户,where banned = ‘No’

注:通过with view as的方式,将状语筛选逻辑限定在各自的表内。

3-取消率,被司机|乘客取消的订单数 / 用户生成的订单数。

# Write your MySQL query statement below

/* target:国庆前3天,非禁止用户的取消率,保留2位小数。 1-国庆前3天,where request_at between '2013-10-01' and '2013-10-03' 2-非禁止用户,where banned = 'Yes' 注:通过with view as的方式,将状语筛选逻辑限定在各自的表内。 3-取消率,被司机|乘客取消的订单数 / 用户生成的订单数。 */

with view4trips as(
    select client_id,driver_id,status,request_at
    from Trips
    where request_at between '2013-10-01' and '2013-10-03'
),view4users as(
    select users_id
    from Users
    where banned = 'No'
)

select 
    date_format(request_at,'%Y-%m-%d') Day,
    round(
        count(if(status != 'completed',1,null)) / count(1)
        ,2) `Cancellation Rate`
from view4users v1 join view4trips v2 on v1.users_id = v2.client_id
    join view4users v3 on v2.driver_id = v3.users_id
group by Day
order by Day

总结

1)阅读理解题要抓主干,分语言成分,来进行筛选/表瘦身成view/view的同步(句子嵌套)。

参考文献

[1] LeetCode 行程与用户

原网站

版权声明
本文为[REN_林森]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_43164662/article/details/126244319