【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等)。
相关推荐
noravinsc2 分钟前
yum install -y mysql-community-server报错 GPG Keys are configured as....
数据库·mysql
Hello.Reader4 分钟前
Flink SQL 查询(Queries)从 sqlQuery 到 executeSql
sql·flink·linq
leing1234 分钟前
14. 最长公共前缀-leetcode
linux·服务器·leetcode
Han.miracle7 分钟前
数据库圣经--Alter & 视图
数据库·sql·视图
LeeZhao@13 分钟前
【狂飙全模态】狂飙AGI-智能图文理解助手
数据库·人工智能·redis·语言模型·机器人·agi
毕设十刻19 分钟前
基于Vue的旅游网站yzwa8(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
数据库·vue.js·旅游
风123456789~27 分钟前
【Oracle专栏】密码到期但在宽限期->修改密码
数据库·oracle
却话巴山夜雨时i30 分钟前
347. 前 K 个高频元素【中等】
数据结构·算法·leetcode
(●—●)橘子……30 分钟前
力扣344.反转字符串 练习理解
python·学习·算法·leetcode·职场和发展
Pocker_Spades_A34 分钟前
DeepCore:大模型统一网关,Claude 免费体验与跨模型技术洞察
java·服务器·数据库