当前位置: 首页 > news >正文

力扣【SQL连续问题】

180. 连续出现的数字

在这里插入图片描述
在这里插入图片描述

SELECT DISTINCT if(a.num = b.num AND b.num = c.num,a.num,null) AS ConsecutiveNums
FROM Logs a
LEFT OUTER JOIN Logs b
ON a.id+1 = b.id
LEFT OUTER JOIN Logs c
ON a.id+2 = c.id
WHERE if(a.num = b.num AND b.num = c.num,a.num,null) IS NOT NULL

603. 连续空余座位

在这里插入图片描述
在这里插入图片描述

SELECT a.seat_id AS seat_id
FROM Cinema a
LEFT OUTER JOIN Cinema b
ON a.seat_id + 1 = b.seat_id
LEFT OUTER JOIN Cinema c
ON a.seat_id - 1 = c.seat_id
WHERE a.free = 1 AND (b.free = 1 OR c.free = 1) 
ORDER BY seat_id
-- 执行速度慢
SELECT DISTINCT a.seat_id AS seat_id
FROM Cinema a
LEFT OUTER JOIN Cinema b
ON ABS(a.seat_id - b.seat_id) = 1
WHERE a.free = 1 AND b.free = 1
ORDER BY seat_id

613. 直线上的最近距离

在这里插入图片描述
在这里插入图片描述

-- 方法一:
SELECT MIN(ABS(a.x - b.x)) AS shortest
FROM Point a
LEFT OUTER JOIN Point b
ON a.x <> b.x
-- 方法二:
select  x - lag(x) over(order by x) as shortestfrom pointorder by shortestlimit 1offset 1
-- 方法二中的中间输出 
select  x, lag(x) over(order by x) AS lag_x,    -- 取比每个 x 小的值中,但又最靠近x(数值上最大的)的那一个值 x - lag(x) over(order by x) as shortest  -- 计算每个 x 与其 lag_x 之间的距离from point 

在这里插入图片描述

1285. 找到连续区间的开始和结束数字

在这里插入图片描述
在这里插入图片描述

①先给每个数进行排名

②用这些数减去自己的排名,如果减了之后的结果是一样的,说明这几个数是连续的
(原理:等差数列的值,减去等差数列的值,结果才能是一样的。)

在这里插入图片描述

③用logid减去排名得出来的数进行group by,也就是把连续的数全都放在一个一个小组里面,求出每个小组的最大值和最小值就可以了

SELECT MIN(a.log_id) AS START_ID, MAX(a.log_id) AS END_ID
FROM (SELECT log_id, ROW_NUMBER() OVER (ORDER BY log_id ASC) rn,log_id - ROW_NUMBER() OVER (ORDER BY log_id ASC) referenceFROM Logs) a 
GROUP BY a.reference
ORDER BY start_id
http://www.lryc.cn/news/515871.html

相关文章:

  • 深圳市-地铁线路和站点名称shp矢量数据(精品)2021年-2030最新arcmap含规划路线内容测评分析
  • 企业级网络运维管理系统深度解析与实践案例
  • 音视频入门基础:MPEG2-PS专题(5)——FFmpeg源码中,解析PS流中的PES流的实现
  • 【问题记录】npm create vue@latest报错
  • OpenGL材质系统和贴图纹理
  • Markdown中类图的用法
  • 钓鱼攻击(Phishing)详解和实现 (网络安全)
  • window11 wsl mysql8 错误分析:1698 - Access denied for user ‘root‘@‘kong.mshome.net‘
  • C++线程同步之条件变量
  • 如何实现多条件搜索
  • 深入MySQL复杂查询优化技巧
  • Fabric环境部署-Git和Node安装
  • 如何弥补开源大语言模型解决推理任务的不足
  • Ubuntu 下载安装 Consul1.17.1
  • 【数据库系统概论】并发控制--复习
  • MySQL(六)MySQL 案例
  • DDcGAN_多分辨率图像融合的双鉴别条件生成对抗网络_y译文马佳义
  • [读书日志]从零开始学习Chisel 第一篇:书籍介绍,Scala与Chisel概述,Scala安装运行(敏捷硬件开发语言Chisel与数字系统设计)
  • 二、用例图
  • LWIP之一:使用STM32CubeMX搭建基于FreeRTOS的LWIP工程并分析协议栈初始化过程
  • 个性化电影推荐系统|Java|SSM|JSP|
  • UE5AI感知组件
  • 每日一学——日志管理工具(ELK Stack)
  • “智能筛查新助手:AI智能筛查分析软件系统如何改变我们的生活
  • DeepSeek v3为何爆火?如何用其集成Milvus搭建RAG?
  • linux-centos-安装miniconda3
  • html+css+js网页设计 美食 好厨艺西餐美食企业网站模板6个页面
  • QT-窗口嵌入外部exe
  • C#中使用系统默认应用程序打开文件
  • 如何在 Ubuntu 22.04 上配置 Logrotate 高级教程