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

各城市最大同时等车人数

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

with df as(
    #进入等车状态 uv+1
    SELECT 
    city,
    event_time as "UV变动时间点",
    1 as "UV"
    FROM tb_get_car_record
    UNION ALL 
    #退出等车_情况一 uv-1
    SELECT 
    city,
    end_time as "UV变动时间点",
    -1 as "UV"
    from tb_get_car_record
    where order_id is null
    UNION all       
    #退出等车_情况二 uv-1
    SELECT 
    df2.city,
    ifnull(df1.start_time,df1.finish_time) as "UV变动时间点",
    -1 as "UV"
    from tb_get_car_order as df1
    left join tb_get_car_record as df2
    on df1.order_id = df2.order_id
)

select city,max(UV_num) as "最大瞬时UV" from(
    select
    city,
    sum(UV) over(partition by city order by UV变动时间点 asc,UV desc ROWS between unbounded preceding and current row) as "UV_num"  #题目要求同一时刻先增后减,所以排序需要追加 UV desc;ROWS between ...之后都可以省略,此处为了防止本人忘记,就不省略了
    from df
    where date_format(UV变动时间点,'%Y-%m') = '2021-10'
) as a
group by city
order by 最大瞬时UV asc,city asc

附带注释

全部评论

相关推荐

完美的潜伏者许愿简历...:隐藏信息被你提取出来了,暗示,这就是暗示
点赞 评论 收藏
分享
半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
最近经历我的处女面,还是一家大厂,笑自己不自量力,面试官态度特好,问的问题也很专业。好多问题结结巴巴说不出来,还以为自己多厉害呢。跑过去耽误人家时间……😅简历上的写的最好还是实打实,不然一问三不知。
不要卷我了:我的第一次面大厂,前面聊的好好的,直到说让我写道sql,题很简单,但是我完全没准备光刷算法题了,group by后面多写了个字段,我说我写好了面试官笑了一下,后面说要去面下一个同学了
26届校招投递进展
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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