最后一个能进入电梯的人
题目分析:题目的意思非常简单,就和我们平时上电梯一样,人按顺序一个一个进去,求最后能上电梯的人是谁。题目给了进去的顺序和每个人的体重,那么我们直接按照顺序累积求和就可以了。按照顺序累积求和可以使用sum搭配窗口函数使用
先按照顺序求和
select person_id,person_name,weight,sum(weight) over(order by turn) s_weight from Queue
接着按照求和的数字筛选,然后倒序排列,选取第一个人的名字即可
select person_name from (
select person_id,person_name,weight,sum(weight) over(order by turn) s_weight from Queue) T where s_weight <= 1000 order by s_weight desc limit 1
提交结果如下: