品牌网站建设找顺的,网站生成海报功能怎么做,如何做网站展示商品,做网站要用写接口6前言
练习sql语句#xff0c;所有题目来自于力扣#xff08;https://leetcode.cn/problemset/database/#xff09;的免费数据库练习题。
今日题目#xff1a;
1407.排名靠前的旅行者 表#xff1a;Users
列名类型idintnamevarchar
id 是该表中具有唯一值的列。name …前言
练习sql语句所有题目来自于力扣https://leetcode.cn/problemset/database/的免费数据库练习题。
今日题目
1407.排名靠前的旅行者 表Users
列名类型idintnamevarchar
id 是该表中具有唯一值的列。name 是用户名字。
表Rides
列名类型idintuser_idintdistanceint
id 是该表中具有唯一值的列。user_id 是本次行程的用户的 id, 而该用户此次行程距离为 distance 。 我那不值一提的想法
首先梳理表内容题干给了两张表第一张用户表记录了用户id和姓名第二张旅行表记录了id和用户id和距离其中用户id和第一张表的id一样。其次分析需求需要报告每个用户的旅行距离并且有不一样的逻辑判断,那么我们就先满足距离在满足名字就是把距离放在order by 的前面一个值。初次之外对于没有距离的用户我们还需要显示出来并标识为0这里我们使用ifnull判断如果是空值择改成0。
我一开是是用name去分组的但是如果用name分组就忽略了名字一样的情况就会出现错误我们应该用表的主键唯一列id进行分组也就是order by u.id
select u.name,ifnull(sum(r.distance),0) as travelled_distance
from Users u
left join Rides r
on u.id r.user_id
group by u.name
order by sum(r.distance) desc,u.name也就是这样
select u.name,ifnull(sum(r.distance),0) as travelled_distance
from Users u
left join Rides r
on u.id r.user_id
group by u.id
order by sum(r.distance) desc,u.name结果 总结
能运行就行。