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

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

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

# 思路:
# 1、将每个城市中平均得分第一名的司机信息提取出来(dense_rank)
# 2、计算平均评分、日均接单量和日均行驶里程数
select t5.city,t5.driver_id,round(avg(t5.grade),1) as avg_grade
,round(count(t5.order_time)/count(distinct day(t5.order_time)),1) as avg_order_num
,sum(t5.mileage)/count(distinct day(t5.order_time)) as avg_mileage 
from(
# 将计算需要用的额信息提取出来
select c4.city,c3.driver_id,c3.grade,c3.order_time,c3.mileage from 
tb_get_car_order as c3 left join tb_get_car_record as c4 
on c3.order_id = c4.order_id 
where (c3.driver_id,c4.city) in (
# 将每个城市中平均得分第一名的城市、司机信息查询出来
select t2.driver_id,t2.city from(
select t1.driver_id,t1.city
# 由于同分都要提取,因此用dense_rank
,dense_rank() over(partition by t1.city order by t1.avg_grade desc) as rank_grade 
from(
select distinct c1.driver_id,c2.city
,avg(c1.grade) over(partition by c1.driver_id) as avg_grade from 
tb_get_car_order as c1 left join tb_get_car_record as c2 
on c1.order_id = c2.order_id ) t1 ) t2 where t2.rank_grade = 1)) t5 
group by t5.city,t5.driver_id 
order by count(t5.order_time)/count(distinct day(t5.order_time))
全部评论

相关推荐

04-02 10:09
门头沟学院 Java
用微笑面对困难:这里面问题还是很多的,我也不清楚为啥大家会感觉没啥问题。首先就是全栈开发实习9个月的内容都没有java实习生的内容多,1整个技术栈没看出太核心和难点的内容,感觉好像被拉过去打杂了,而且全栈基本上很容易被毙。里面能问的bug是在太多了比如L:继承 BaseMapper 可直接使用内置方法’。请问你的 BaseMapper 是如何扫描实体类注解如果瞬时产生 100 个上传任务,MySQL 的索引设计是否会有瓶颈?你做过分库分表或者索引优化吗?全栈的内容可以针对动态难点去搞,技能特长写在下面吧,你写了这么多技能,项目和实习体现了多少?你可以在项目里多做文章然后把这个放下去,从大致来看实习不算太水,有含金量你也要写上内容针对哨兵里面的节点变化能问出一万个问题,这个很容易就爆了。
提前批简历挂麻了怎么办
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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