其他分享
首页 > 其他分享> > 每日一题-90(排名靠前的旅行者)

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

作者:互联网

题90:

根据下面两表写一段 SQL , 报告每个用户的旅行距离。返回的结果表单,以 travelled_distance 降序排列 ,如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列 。
在这里插入图片描述
其中:

解题思路:
(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;

标签:distance,name,用户,距离,旅行者,user,90,一题,id
来源: https://blog.csdn.net/Txixi/article/details/122753575