每日一题-90(排名靠前的旅行者)

题90:

根据下面两表写一段 SQL , 报告每个用户的旅行距离。返回的结果表单,以 travelled_distance 降序排列 ,如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列 。
每日一题-90(排名靠前的旅行者)
其中:

  • Users表:id 是该表单主键,name 是用户名字;
  • Rides 表:id 是该表单主键,user_id 是本次行程的用户的 id, 而该用户此次行程距离为 distance 。

解题思路:
(1)利用ifnull()函数将没有旅行距离的旅行者返回为0
(2)用sum()计算旅行距离
(3)根据用户id连接两表
(4)根据user_id分组方便计算距离
(5)根据题目要求排序。

select name ,ifnull(sum(distance) ,0) travelled_distance
from Users u 
left join Rides r 
on u.id = r.user_id  
group by user_id  
order by travelled_distance desc ,name;
上一篇:实验:域环境搭建


下一篇:浩哥的诗集四