欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > Mysql基础练习题 1407.排名靠前的旅行者(力扣)

Mysql基础练习题 1407.排名靠前的旅行者(力扣)

2024/10/24 4:15:35 来源:https://blog.csdn.net/weixin_58468790/article/details/142100226  浏览:    关键词:Mysql基础练习题 1407.排名靠前的旅行者(力扣)

编写解决方案,报告每个用户的旅行距离。 # 返回的结果表单,以 travelled_distance 降序排列 ,如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列 。

题目链接:

https://leetcode.cn/problems/top-travellers/description/

建表插入数据:

Create Table If Not Exists Users (id int, name varchar(30))
Create Table If Not Exists Rides (id int, user_id int, distance int)
Truncate table Users
insert into Users (id, name) values ('1', 'Alice')
insert into Users (id, name) values ('2', 'Bob')
insert into Users (id, name) values ('3', 'Alex')
insert into Users (id, name) values ('4', 'Donald')
insert into Users (id, name) values ('7', 'Lee')
insert into Users (id, name) values ('13', 'Jonathan')
insert into Users (id, name) values ('19', 'Elvis')
Truncate table Rides
insert into Rides (id, user_id, distance) values ('1', '1', '120')
insert into Rides (id, user_id, distance) values ('2', '2', '317')
insert into Rides (id, user_id, distance) values ('3', '3', '222')
insert into Rides (id, user_id, distance) values ('4', '7', '100')
insert into Rides (id, user_id, distance) values ('5', '13', '312')
insert into Rides (id, user_id, distance) values ('6', '19', '50')
insert into Rides (id, user_id, distance) values ('7', '7', '120')
insert into Rides (id, user_id, distance) values ('8', '19', '400')
insert into Rides (id, user_id, distance) values ('9', '7', '230')

画图分析:

代码实现:


#方式一:
select name,if(sum(distance) is null ,0,sum(distance)) as travelled_distance
from users s left join rides ron s.id=r.user_id
group by s.id,s.name
order by travelled_distance desc,s.name ;
#方式二:
select name,ifnull(sum(distance),0) as travelled_distance
from users s left join rides ron s.id=r.user_id
group by s.id,name
order by travelled_distance desc,name;
#方式三:
select name,coalesce(sum(distance),0) as travelled_distance
from users s left join rides ron s.id=r.user_id
group by s.id,name
order by travelled_distance desc,name;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com