【SQL】1204. 最后一个能进入巴士的人(窗口函数;自连接)

前述

知识点学习:自连接和笛卡尔积连接的区别

题目描述

leetcode题目:1204. 最后一个能进入巴士的人

方法一:窗口函数

sql 复制代码
select person_name 
from(
    select *,
        sum(weight) over(order by turn) as sumweight
    from Queue
) A
where sumweight <= 1000
order by sumweight desc
limit 1;

方法二:自连接

sql 复制代码
select A.person_name
from Queue A, Queue B 
where A.turn >= B.turn
group by A.person_id
having sum(B.weight) <= 1000
order by A.turn desc
limit 1;

自连接和笛卡尔积连接的区别

引用 自连接和笛卡尔积连接的区别 总结:

1. 自连接:同一张表被当作不同表(设置不同别名)进行连接
  • 自连接顾名思义就是自己连接自己,因此只有一张表用来连接生成临时表;
  • 自连接需要通过"where"关键字来设置连接条件,而不是通过"on";
2. 笛卡尔积连接:不设置连接条件的连接
  • 连接的表可以是同一张表(要设置不同的别名,否则报错),也可以是多张不同的表;
  • 笛卡尔积连接的原理是不管两张或多张表的记录是否匹配,均一一对应生成新的记录,因此笛卡尔积连接不设置连接条件(如on,wher等)。
相关推荐
2401_8971905515 分钟前
Golang怎么写TODO待办应用_Golang TODO应用教程【深入】
jvm·数据库·python
渔舟小调15 分钟前
P11 | 收藏与行程:用户行为类接口的设计模式
数据库·设计模式·oracle
m0_6784854520 分钟前
CSS实现浮动图标与文本居中对齐_配合浮动与flex
jvm·数据库·python
做时间的朋友。22 分钟前
MySQL 8.0 窗口函数
android·数据库·mysql
试试勇气24 分钟前
MySQL--库的操作
数据库·mysql
阿Y加油吧27 分钟前
两道中等 DP 题拆解:打家劫舍 & 完全平方数
算法·leetcode·动态规划
2401_8877245028 分钟前
uni-app动画效果实现 uni-app如何使用animation API
jvm·数据库·python
m0_7488394929 分钟前
mysql如何处理不走索引的OR查询_使用UNION ALL优化重写
jvm·数据库·python
2401_8877245043 分钟前
在 Ubuntu Core 上部署 Go Web 服务的完整实践指南
jvm·数据库·python
Polar__Star1 小时前
C#怎么实现Redis分布式缓存 C#如何在ASP.NET Core中集成Redis实现分布式缓存方案【架构】
jvm·数据库·python