with tb1 as(
select city, driver_id, date(order_time) dt, mileage, grade
from tb_get_car_order left join tb_get_car_record
using(order_id))
select city, driver_id, a, b, c
from(
select *,
rank()over(partition by city order by a desc) r
from (
select city, driver_id,
round(avg(grade),1) a,
round(count(dt)/count(distinct dt),1) b,
round(sum(mileage)/count(distinct dt),3) c
from tb1
group by city, driver_id
) as tb2
) as tb3
where r=1
order by b



京公网安备 11010502036488号