select city, driver_id, avg_grade, avg_order_num, avg_mileage from (select city, driver_id, round(avg(grade),1) avg_grade, round(count(*)/count(distinct date(order_time)),1) avg_order_num, round(sum(mileage)/count(distinct date(order_time)),3) avg_mileage, rank() over(partition by city order by avg(...