MySql力扣VIP面试题:1308. 不同性别每日分数总计 + 1204. 最后一个能进入电梯的人

转载:
声明:如果我侵犯了任何人的权利,请联系我,我会删除
欢迎高手来喷我

1308. 不同性别每日分数总计

链接:https://leetcode-cn.com/problems/running-total-for-different-genders
在这里插入图片描述
(gender, day)是该表的主键
一场比赛是在女队和男队之间举行的
该表的每一行表示一个名叫 (player_name) 性别为 (gender) 的参赛者在某一天获得了 (score_points) 的分数
如果参赛者是女性,那么 gender 列为 ‘F’,如果参赛者是男性,那么 gender 列为 ‘M’

写一条SQL语句查询每种性别在每一天的总分,并按性别和日期对查询结果排序

下面是查询结果格式的例子:
在这里插入图片描述
在这里插入图片描述
女性队伍:
第一天是 2019-12-30,Priyanka 获得 17 分,队伍的总分是 17 分
第二天是 2019-12-31, Priya 获得 23 分,队伍的总分是 40 分
第三天是 2020-01-01, Aron 获得 17 分,队伍的总分是 57 分
第四天是 2020-01-07, Alice 获得 23 分,队伍的总分是 80 分
男性队伍:
第一天是 2019-12-18, Jose 获得 2 分,队伍的总分是 2 分
第二天是 2019-12-25, Khali 获得 11 分,队伍的总分是 13 分
第三天是 2019-12-30, Slaman 获得 13 分,队伍的总分是 26 分
第四天是 2019-12-31, Joe 获得 3 分,队伍的总分是 29 分
第五天是 2020-01-07, Bajrang 获得 7 分,队伍的总分是 36 分

题解

select a.gender, a.day, sum(b.score_points) as total
from scores a, scores b
where a.gender = b.gender and a.day >= b.day
group by gender,day
order by gender, day,total

1204. 最后一个能进入电梯的人

链接:https://leetcode-cn.com/problems/last-person-to-fit-in-the-elevator
在这里插入图片描述
person_id 是这个表的主键。
该表展示了所有等待电梯的人的信息。
表中 person_id 和 turn 列将包含从 1 到 n 的所有数字,其中 n 是表中的行数。

电梯最大载重量为 1000。

写一条 SQL 查询语句查找最后一个能进入电梯且不超过重量限制的 person_name 。题目确保队列中第一位的人可以进入电梯 。

查询结果如下所示 :
在这里插入图片描述
在这里插入图片描述
为了简化,Queue 表按 turn 列由小到大排序。
上例中 George Washington(id 5), John Adams(id 3) 和 Thomas Jefferson(id 6) 将可以进入电梯,因为他们的体重和为 250 + 350 + 400 = 1000。
Thomas Jefferson(id 6) 是最后一个体重合适并进入电梯的人。

题解

select a.person_name
from queue a
where (select sum(b.weight) from queue b where a.turn >= b.turn) <= 1000
order by a.turn desc limit 1

猜你喜欢

转载自blog.csdn.net/qq_45531729/article/details/112384778
今日推荐