题解 | #每个城市中评分最高的司机信息#

每个城市中评分最高的司机信息

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

select city, driver_id,
       round(max(avggrade), 1)  
           as avg_grade,
       round(count(1) / count(distinct date(order_time)), 1) 
           as avg_order_num,
       round(sum(mileage) / count(distinct date(order_time)), 3) 
           as avg_mileage
from tb_get_car_order
    left join (
        
        -- 求得每个司机的平均分,并按照不同城市进行排名
        select city, driver_id,
               avg(grade)
                   as avggrade,
               -- 考虑到并列第一的情况,题目未阐述,故使用dense_rank
               dense_rank() over (partition by city order by avg(grade) desc )
                   as drk_grade 
        from tb_get_car_order
        left join tb_get_car_record using (order_id)
        group by city, driver_id
        
        # 生成表tb_driver_rk大致如下:        
        # | city | driver_id | avggrade | drk_grade |
        # | 北京 | 203 | 4.7500 | 1 |
        # | 北京 | 202 | 4.3333 | 2 |
        
        ) tb_driver_rk using (driver_id)

-- 筛选出各城市并列第一的司机
where drk_grade = 1
group by city, driver_id
-- 根据日均接单量排序
order by avg_order_num;

全部评论

相关推荐

如题,这操作。。。。
真烦好烦真烦:既想享受国家的招聘应届生福利,又不想培养新人,我只能说这种企业的ld太过分了
投递美的集团等公司6个岗位 >
点赞 评论 收藏
分享
可以不说话:笔试a了3道半,今天说是挂了😭😭
投递汇丰科技等公司8个岗位
点赞 评论 收藏
分享
被加薪的哈里很优秀:应该继续招人,不会给你留岗位的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务