Números consecutivos

Encuentra todos los números que aparecen al menos tres veces consecutivamente. Regresa el resultado en cualquier orden.

#database#advanced-select

Tabla: Logs

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| num         | varchar |
+-------------+---------+

- `id` es la llave primaria y se incrementa automáticamente.

El formato del resultado se muestra en el siguiente ejemplo.

Ejemplo 1:

Entrada:

Tabla Logs:
+----+-----+
| id | num |
+----+-----+
| 1  | 1   |
| 2  | 1   |
| 3  | 1   |
| 4  | 2   |
| 5  | 1   |
| 6  | 2   |
| 7  | 2   |
+----+-----+

Salida:

+-----------------+
| ConsecutiveNums |
+-----------------+
| 1               |
+-----------------+

Explicación: 1 es el único número que aparece consecutivamente al menos tres veces.

Solución

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;

slackmart blog © 2024