select
city,
driver_id,
avg_grade,
avg_order_num,
avg_mileage
from
(
select
city,
driver_id,
round(avg(grade), 1) as avg_grade,
round(count(order_id)/count(distinct date(order_time)), 1) avg_order_num,
round(sum(mileage)/count(distinct date(order_time)), 3) as avg_mileage,
dense_rank() over(partition by city order by round(avg(grade), 1) desc) as rk
from
tb_get_car_order a
left join
tb_get_car_record b
using(order_id)
group by
city,
driver_id
) t1
where
rk = 1
order by
avg_order_num

京公网安备 11010502036488号