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

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

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

# 思路:先分组聚合求出所有指标,再通过窗口函数rank() 筛选评分最高的记录
SELECT city,driver_id,avg_grade,avg_order_num,avg_mileage
from (
  select *
  ,rank()over(partition by city order by avg_grade desc) posn
  from (
    select city,driver_id
    ,round(avg(grade),1) avg_grade
    ,round(count(order_time)/count(distinct date(order_time)),1) avg_order_num
    ,sum(mileage)/count(distinct date(order_time)) avg_mileage
    from tb_get_car_record tgcr
    inner join tb_get_car_order tgco
    on tgcr.order_id=tgco.order_id
    group by city,driver_id
  ) a
) b
where posn=1
order by avg_order_num
全部评论
不懂为什么对平均里程取三位小数是对的,取完三位小数反而是错的,题目有毛病吧
点赞 回复 分享
发布于 2022-03-19 21:24

相关推荐

LXXXXd:有点杂,想搞自动化的话没必要把法律的经历写上去
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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