【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等)。
相关推荐
MonkeyKing_sunyuhua6 小时前
ES文档序号写错的问题的修复
java·数据库·elasticsearch
饱饱要坚持可持续发展观6 小时前
Liquibase preConditions 执行前判断详解
数据库·liquibase
nju_spy6 小时前
力扣每日一题 2026.1
算法·leetcode·二分查找·动态规划·最小生成树·单调栈·最长公共子序列
代码煮茶君6 小时前
MySQL 数据库死锁及核心机制全解析
android·数据库·mysql
咕噜企业分发小米6 小时前
豆包大模型在药物研发中的知识检索效率如何?
java·开发语言·数据库
Remember_9936 小时前
【LeetCode精选算法】二分查找专题一
java·数据结构·算法·spring·leetcode·哈希算法
LaughingZhu7 小时前
Product Hunt 每日热榜 | 2026-01-20
数据库·人工智能·经验分享·神经网络·搜索引擎·chatgpt
SJLoveIT7 小时前
sql注入攻击的防御思路总结
数据库·sql
偷星星的贼117 小时前
如何为开源Python项目做贡献?
jvm·数据库·python
这就是佬们吗7 小时前
力扣---leetcode48
java·笔记·后端·算法·leetcode·idea