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

各城市最大同时等车人数

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

-- 1、所有数据(完成、用户取消、司机取消等。注意:LEFT JOIN )
WITH t AS
(
SELECT city,
event_time in_t,    -- 开始打车时间
IF(fare IS NULL,end_time,start_time) out_t  -- 停止等待时间
FROM tb_get_car_order o 
LEFT JOIN tb_get_car_record r ON o.order_id=r.order_id
WHERE DATE_FORMAT(event_time,'%Y%m')='202110'
),
-- 2、将时间拆分合并,开始打车时间tag=1,停止等待时间tag=-1
t2 AS
(
SELECT city,in_t dt,1 tag FROM t 
UNION ALL 
SELECT city,out_t dt,-1 tag FROM t
)
-- 3、按城市分组取出最大值
SELECT city,MAX(cnt) max_wait_uv
FROM 
(   -- 3、根据城市、日期分区求和(各时间点的等待人数)
    SELECT city,SUM(tag)OVER(PARTITION BY city,DATE(dt) ORDER BY dt,tag DESC) cnt FROM t2
) t3
GROUP BY city
ORDER BY max_wait_uv,city

全部评论

相关推荐

湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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