【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等)。
相关推荐
执子手 吹散苍茫茫烟波12 小时前
常见的数据库隔离级别以及企业里常用的是什么方案
数据库
Database_Cool_13 小时前
数据库慢查询优化首选方案:阿里云 RDS 性能洞察+自动诊断
数据库·人工智能·阿里云
YOU OU13 小时前
Redis初识
数据库·redis·缓存
长孙豪翔13 小时前
在.net中读写config文件的各种方法
java·数据库·.net
tachibana213 小时前
hot100 回文链表(234)
java·网络·数据结构·leetcode·链表
深盾科技_Virbox14 小时前
加密狗授权能力选型:从授权模型到全生命周期管理
java·网络·数据库
峥无14 小时前
深入理解MySQL事务与MVCC机制
数据库·mysql
行思理15 小时前
MongoDB 大数据备份,新手教程
数据库·mongodb
-To be number.wan15 小时前
数据库系统 | 规范化理论
数据库·学习
城数派16 小时前
1950-2026年中国0.1°逐月平均气温栅格数据集
数据库·信息可视化