题解 | #各城市最大同时等车人数#

各城市最大同时等车人数

https://www.nowcoder.com/practice/f301eccab83c42ab8dab80f28a1eef98

试题方向:同时在线量

思路就是利用 union 链接开始和离开时间,然后赋予1和-1通过窗口累计来计算实时在线人数

重点定义何为等候
1、如果出现无人接单,用户取消 这个时候结束时间计入到 打车表的end time
2、如果接单未上车取消,这个时候 结束时间计入 finish_time
3、正常情况计入 start_time

关于跨天的问题,如果在sql中加入开始时间,那么就能解决跨天的问题。
对于大时间跨度,月最大,一定是某天的天最大,所以这个题不加也可以。

select city ,max(num) as max_wait_uv from (
-- 思路的精华,利用窗口+聚合的累计统计能力,可以得到实时在线人数
-- 这里的细节是tag desc 是需要用倒叙的
select city,dt, sum(tag) over(partition by city,dt order by type ,tag desc) as num
    from (
    -- 记录开始时间
select city,date(event_time) as dt ,event_time as type,1 as tag
from tb_get_car_record 
union all
select city,date(event_time) as dt,-- 记录结束时间
-- 这里的细节是根据不同状态,结束时间是不一样的
        case when t.order_id is null then end_time when  start_time is null then finish_time else start_time end as type,-1 as tag
from tb_get_car_record  t left join tb_get_car_order using(order_id))t)t1
where dt between '2021-10-01' and '2021-10-31'
group by city
order by max_wait_uv,city
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
3423次浏览 43人参与
# HR最不可信的一句话是__ #
1038次浏览 32人参与
# MiniMax求职进展汇总 #
25005次浏览 321人参与
# 春招至今,你的战绩如何? #
15286次浏览 141人参与
# AI面会问哪些问题? #
911次浏览 22人参与
# 你的实习产出是真实的还是包装的? #
2862次浏览 52人参与
# 巨人网络春招 #
11501次浏览 224人参与
# 沪漂/北漂你觉得哪个更苦? #
1361次浏览 40人参与
# 你做过最难的笔试是哪家公司 #
1161次浏览 20人参与
# AI时代,哪个岗位还有“活路” #
2736次浏览 50人参与
# XX请雇我工作 #
51149次浏览 171人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7982次浏览 43人参与
# 简历第一个项目做什么 #
32100次浏览 359人参与
# 简历中的项目经历要怎么写? #
310955次浏览 4260人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152854次浏览 889人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187566次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64610次浏览 870人参与
# 如果重来一次你还会读研吗 #
229990次浏览 2011人参与
# 投格力的你,拿到offer了吗? #
178284次浏览 891人参与
# 你怎么看待AI面试 #
180699次浏览 1298人参与
# 正在春招的你,也参与了去年秋招吗? #
364256次浏览 2641人参与
# 腾讯音乐求职进展汇总 #
160831次浏览 1114人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务