Skip to content

Files

Latest commit

c5dbbb6 · Jun 16, 2023

History

History

0180.Consecutive Numbers

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jun 16, 2023
Jun 16, 2023
Jun 16, 2023

English Version

题目描述

表:Logs

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| num         | varchar |
+-------------+---------+
id 是这个表的主键。

 

编写一个 SQL 查询,查找所有至少连续出现三次的数字。

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

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

 

示例 1:

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

解法

SQL

SELECT DISTINCT (Num) AS ConsecutiveNums
FROM Logs AS Curr
WHERE
    Num = (SELECT Num FROM Logs WHERE id = Curr.id - 1)
    AND Num = (SELECT Num FROM Logs WHERE id = Curr.id - 2);
# Write your MySQL query statement below
SELECT DISTINCT l1.num AS ConsecutiveNums
FROM
    logs AS l1,
    logs AS l2,
    logs AS l3
WHERE
    l1.id = l2.id - 1
    AND l2.id = l3.id - 1
    AND l1.num = l2.num
    AND l2.num = l3.num;