【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等)。
相关推荐
烟沙九洲5 分钟前
Redis 缓存穿透、缓存击穿、缓存雪崩
数据库·redis
Elastic 中国社区官方博客9 分钟前
jina-ocr-v1:在低成本 GPU 上实现更快速的文档解析
大数据·数据库·elasticsearch·搜索引擎·全文检索·jina
于平安18 分钟前
MySQL-变量,流程控制与游标
数据库·mysql
我滴老baby26 分钟前
检索的上限,在切块时就定了:一次〈民法典〉实测,看懂 ChatDOC 的“上下文检索”
数据库·全文检索·文档处理
Databend30 分钟前
Jev 爆火之后,我们把它集成进了数据湖仓
大数据·数据库·agent
mmmmath_335 分钟前
LeetCode.028.找出字符串中第一个匹配项的
数据结构·算法·leetcode
数字新视界37 分钟前
数据中心基础设施管理系统的智能监测与运维整合剖析
数据库·物联网·数据中心·数据中心基础设施管理·dcim管理系统
于樱花森上飞舞1 小时前
【Redis】哨兵详解
java·开发语言·数据库·redis
Navigator_Z1 小时前
LeetCode //C - 1255. Maximum Score Words Formed by Letters
c语言·算法·leetcode
All for pursuit.1 小时前
【栈-4】739.每日温度
数据结构·c++·算法·leetcode