题解 | 统计骑手信息

统计骑手信息

https://www.nowcoder.com/practice/704de2445ed943c6bf65cfd77bd69ff4

with 
t1 as(
    select
        o.zone_id,
        z.zone_name,
        sum(if(left(o.order_time,7)='2023-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0)) peak_2023_02_delivered,
        sum(if(left(o.order_time,7)='2024-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0)) peak_2024_02_delivered,
        sum(if(left(o.order_time,7)='2024-01' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0)) peak_2024_01_delivered,
        sum(if(left(o.order_time,7)='2024-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0))-sum(if(left(o.order_time,7)='2023-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0)) yoy_delta,
        sum(if(left(o.order_time,7)='2024-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0))-sum(if(left(o.order_time,7)='2024-01' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0)) mom_delta,
        round(
            sum(if(left(o.order_time,7)='2024-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',timestampdiff(minute,o.order_time,o.delivered_time),0))/
            sum(if(left(o.order_time,7)='2024-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0)),
            2) avg_peak_minutes_2024_02
    from Orders o join Zones z on o.zone_id=z.zone_id
    group by o.zone_id,z.zone_name),
t2 as(
    select
        o.zone_id,
        c.courier_id,
        c.courier_name top_courier_2024_02,
        sum(if(left(o.order_time,7)='2024-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0)) delivered_nums,
        row_number() over(partition by o.zone_id order by 
            sum(if(left(o.order_time,7)='2024-02' and hour(o.order_time) in(11,12,13,18,19,20) and o.status='delivered',1,0)) desc,c.courier_id asc) as zone_rank
    from Orders o join Couriers c on o.courier_id=c.courier_id
    group by o.zone_id,c.courier_id,c.courier_name)

select 
    t1.*,
    t2.top_courier_2024_02
from t1 join t2 on t1.zone_id=t2.zone_id and t2.zone_rank=1



全部评论

相关推荐

owwhy:难,技术栈在嵌入式这块显得非常浅,并且简历有大问题。教育经历浓缩成两行就行了,写什么主修课程,说的不好听这块没人在意,自我评价删了,项目写详细点,最终简历缩成一页。相关技能怎么说呢,有点差了,还写成这么多行
投了多少份简历才上岸
点赞 评论 收藏
分享
01-26 19:51
门头沟学院 Java
isabener:怎么感觉像群发的呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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