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

各城市最大同时等车人数

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

SELECT city, MAX(wait_num) max_wait_uv
FROM
    (
    SELECT b.city, date(a.wait_time) dt, # 分组条件:"各个城市","单日"
           SUM(a.cnt)OVER(PARTITION BY b.city, date(a.wait_time) 
                          ORDER BY a.wait_time ASC, a.cnt DESC) wait_num
    # order by+ 窗口范围(求和的范围)
    # a.cnt DESC 先增后减“如果同一时刻有人停止等车,有人开始等车,等车人数记作先增加后减少”
    # order by xx ASC, xx DESC 有逗号!!
    FROM
        (
        # 三种情况: 1.正常上车 2.司机取消 3.乘客取消 
        SELECT order_id, event_time AS wait_time, +1 AS cnt
        FROM tb_get_car_record
        UNION ALL
        SELECT order_id, end_time AS wait_time, -1 AS cnt
        FROM tb_get_car_record 
        WHERE order_id IS NULL # 无订单生成/还没有司机接单
        UNION ALL
        SELECT order_id, IFNULL(start_time, finish_time) AS wait_time, -1 AS cnt
        FROM tb_get_car_order # 如果没有订单start时间,就是没上车时取消了,取消时间finish_time
        ) a 
        JOIN tb_get_car_record b
        ON a.order_id = b.order_id
    WHERE wait_time LIKE "2021-10%"
    ) t
GROUP BY city, dt
ORDER BY max_wait_uv, city

全部评论

相关推荐

08-29 07:47
已编辑
莆田学院 Java
路上小荷:小孙,你好,我是由XX幼儿园、XX小学、XX初中、XX高中、XX大***合培养的研究生,想寻找能够陪我一起成长,登上人生巅峰的公司。在公司任职期间公司需要提供免费食宿、百万年薪以及私人医生。预计65岁退休,退休后公司可以求我给新员工讲述奋斗历程
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务