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

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

# 注意over窗口中排序的num desc
# 因为如果同一时刻有人停止等车,有人开始等车,等车人数记作先增加后减少。
with tmp as(
    select 
        city,
        rd.event_time et,
        (
            case when rd.order_id is null then end_time
                 else start_time
                 END
        ) st
    from tb_get_car_record rd
    left join tb_get_car_order od
    on rd.order_id = od.order_id
    where date_format(event_time,'%Y-%m') = '2021-10'
)
select 
    city,
    max(wait_num)
from
    (
    select 
        city,
        sum(num) over(partition by city order by dt,num desc) wait_num
    from
        (
            select
                city,
                et dt,
                1 num
            from 
                tmp
            union all
            select
                city,
                st dt,
                -1 num
            from 
                tmp
        )t1
    )t2
group by city
order by max(wait_num),city

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
07-10 11:08
门头沟学院 Java
Sairus:我注册都注册不了提醒我手机号二次啥的,果然对于人才推得就是快,像我投完了就没回音的
投递京东等公司10个岗位
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务