推荐阅读文章列表
SQL题目
有一张用户乘电梯表 dwd_elevator_user_di 包括字段:uid(用户id)、weight(体重kg)、num(排队的序号)
问题:已知电梯最大载重量不超过600KG,计算最后一个能进电梯的人
答案解析
思路分析
-
题目比较容易理解,就是让用户按照顺序进入电梯,需保证总重量不能超过600KG,找到最后一个进入电梯的人 -
我们可以按照进入电梯的顺序进行排序,对用户的体重进行累加,当总量超过600KG时,前一个人即为最后一个进入电梯的人;如果总量始终没有超过600KG,那么最大的序号即为最后一个进入电梯的人
具体代码
select uid
from (
select
uid,
weight,
num,
sum(weight) over(orderbynum) as total_weight
from dwd_elevator_user_di
) t
where total_weight <= 600
orderbynumdesc
limit1
;
写在最后
V6.0笔记获取方式
公众号回复:大数据面试笔记

