【SQL】连续出现的数字

目录

题目

分析

代码


题目

表:Logs

复制代码
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| num         | varchar |
+-------------+---------+
在 SQL 中,id 是该表的主键。
id 是一个自增列。

找出所有至少连续出现三次的数字。

返回的结果表中的数据可以按 任意顺序 排列。

结果格式如下面的例子所示:

示例 1:

复制代码
输入:
Logs 表:
+----+-----+
| id | num |
+----+-----+
| 1  | 1   |
| 2  | 1   |
| 3  | 1   |
| 4  | 2   |
| 5  | 1   |
| 6  | 2   |
| 7  | 2   |
+----+-----+
输出:
Result 表:
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1               |
+-----------------+
解释:1 是唯一连续出现至少三次的数字。

分析

找出所有至少连续出现三次的数字

单纯面向题目,三表连接或者子查询即可实现

where in 找到id连续三次的数字

即(id,num)中id+1,+2,num不变

where (id+1,num) in (select * from Logs)

and (id+2,num) in (select * from Logs)

可能检索到同一数字

通过distinct每个数字仅取一次,select distinct num as ConsecutiveNums

代码

复制代码
select distinct num as ConsecutiveNums
from Logs
where (id+1,num) in (select * from Logs)
and (id+2,num) in (select * from Logs)
相关推荐
unicrom_深圳市由你创科技5 小时前
MySQL 全文索引进阶:中文分词配置 + 模糊查询性能优化
mysql·性能优化·中文分词
沐浴露z5 小时前
详细解析 MySQL 性能优化之【索引下推】
数据库·mysql·性能优化
多情刀客无情刀5 小时前
目录名在状态信息被获取之前改变了
数据库·postgresql
pale_moonlight6 小时前
五、Hbase基于环境搭建
linux·数据库·hbase
Elastic 中国社区官方博客6 小时前
Elasticsearch:相关性在 AI 代理上下文工程中的影响
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
程序员卷卷狗6 小时前
联合索引的最左前缀原则与失效场景
java·开发语言·数据库·mysql
蓝色猪猪侠7 小时前
postgresql数据库的安装
数据库
敖云岚7 小时前
【疑难解答】MySQL 报错 Public Key Retrieval is not allowed
数据库·mysql
小旺不正经8 小时前
Linux介绍及常用命令
linux·运维·数据库