这里写自定义目录标题
SQL如何查找所有至少连续出现三次的数字
logs表:
±-------------------±---------------+
| Column Name | Type |
±-------------------±---------------+
| id | int |
| num | varchar |
±-------------------±---------------+
id 是这个表的主键。
示例:
输入:
logs表:
Logs 表:
±—±----+
| Id | Num |
±—±----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
±—±----+
输出:
Result 表:
±----------------+
| ConsecutiveNums |
±-----------Logs 表:
±—±----+
| Id | Num |
±—±----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
±—±----+
输出:
Result 表:
±----------------+
| ConsecutiveNums |
±----------Logs 表:
±—±----+
| Id | Num |
±—±----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
±—±----+
输出:
Result 表:
±----------------------------+
| ConsecutiveNums |
±----------------------------+
| 1 |
±----------------------------+
解释:1 是唯一连续出现至少三次的数字。
1、
SELECT DISTINCT
l1.Num AS ConsecutiveNums
FROM
Logs l1,
Logs l2,
Logs l3
WHERE
l1.Id = l2.Id - 1
AND l2.Id = l3.Id - 1
AND l1.Num = l2.Num
AND l2.Num = l3.Num
--MySql
SELECT DISTINCT
l1.Num AS ConsecutiveNums
FROM
Logs l1,
Logs l2,
Logs l3
WHERE
l1.Id = l2.Id - 1
AND l2.Id = l3.Id - 1
AND l1.Num = l2.Num
AND l2.Num = l3.Num
该博客介绍了如何使用SQL查询 logs 表中连续出现至少三次的数字。通过示例展示了查询逻辑,利用了三个表格的连接来找出满足条件的连续数字,并给出了具体的SQL查询语句。
697

被折叠的 条评论
为什么被折叠?



