题解 | #每个城市中评分最高的司机信息#
每个城市中评分最高的司机信息
https://www.nowcoder.com/practice/dcc4adafd0fe41b5b2fc03ad6a4ac686
# 问题:请统计每个城市中评分最高的司机平均评分、日均接单量和日均行驶里程数。
# 注:有多个司机评分并列最高时,都输出。
# 平均评分和日均接单量保留1位小数,
# 日均行驶里程数保留3位小数,按日均接单数升序排序。
# 找出符合条件的司机各类信息
with t as(
select driver_id,order_id,order_time,mileage,grade,city
from tb_get_car_record
join tb_get_car_order using(uid,order_id) )
# 生成每个城市、司机的均分、日均接单、日均里程等信息表
,t1 as(
select city,driver_id
,round(sum(grade)/count(grade),1) avg_grade
,round(count(order_id)/count(distinct date(order_time)),1) avg_order_num
,round(sum(mileage)/count(distinct date(order_time)),3) avg_mileage
from t
group by city,driver_id )
# 找出最大评分
select city
,driver_id
,avg_grade
,avg_order_num
, avg_mileage
from t1
where avg_grade in (select max(avg_grade) from t1)