题解 | #工作日各时段叫车量、等待接单时间和调度时间#

工作日各时段叫车量、等待接单时间和调度时间

https://www.nowcoder.com/practice/34f88f6d6dc549f6bc732eb2128aa338

with t1 as(
    select tb2.order_id,event_time,order_time,start_time,finish_time
    from tb_get_car_order tb2
    left join  tb_get_car_record tb1
    on tb1.order_id=tb2.order_id
    WHERE DAYOFWEEK(date(event_time)) BETWEEN 2 AND 6
),
t2 as(select (case when date_format(event_time,'%H:%i:%s')>='09:00:00' and date_format(event_time,'%H:%i:%s')<'17:00:00' then '工作时间'
when (date_format(event_time,'%H:%i:%s')>='20:00:00' and date_format(event_time,'%H:%i:%s')<'23:59:59') or (date_format(event_time,'%H:%i:%s')>='00:00:00' and date_format(event_time,'%H:%i:%s')<'07:00:00')  then '休息时间'
when date_format(event_time,'%H:%i:%s')>='17:00:00' and date_format(event_time,'%H:%i:%s')<'20:00:00'  then '晚高峰'
when date_format(event_time,'%H:%i:%s')>='07:00:00' and date_format(event_time,'%H:%i:%s')<'09:00:00'  then '早高峰' end) as period,order_id,event_time,order_time,start_time,finish_time
from t1)
select period ,count(period)  get_car_num,round((sum(timestampdiff(second,event_time,order_time))/count(order_time))/60,1)   avg_wait_time,round((sum(timestampdiff(second,order_time,start_time))/count(start_time))/60,1) avg_dispatch_time
from t2
group by period
order by get_car_num

全部评论

相关推荐

DKS233:(1)专业技能:Java8也太旧了,最少也要了解到JDK17吧,可以参考现在SpringBoot支持的Java最低版本,熟悉mysql基本理论具体指啥,是锁这种具体原理还是分库分表这些业务场景,spring这些专业词汇,大小写要写对(全篇简历都有这个问题,显得不严谨),熟悉使用框架进行业务开发就别写了,如果要写,起码要写到框架原理部分吧,比如aop,启动原理什么的,springcloud具体指哪些模块呢,写清楚,网关还是鉴权还是什么,“改造”没必要写吧,你直接说用springcloud开发的不就行了(2)项目经历:首先格式就有大问题,时间怎么能换行呢,调整一下,响应速度那个,如果指的是将部分数据从其他数据库转到redis的提升就别写了,因为这个不算难点,redis可以写写分布式这些,比如容灾怎么实现的,数据库同步怎么做的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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