Seleccionar X filas de MySQL después de una coincidencia específica.
Estoy tratando de escribir una declaración select en MySQL para obtener 5 filas después de encontrar una coincidencia y luego sumar cuántas veces se repitieron esos números.
Ejemplo:
Tabla sin procesar
id | número |
---|---|
1 | 1 |
2 | 0 |
3 | 9 |
4 | 14 |
5 | 11 |
6 | 0 |
7 | 3 |
8 | 4 |
9 | 10 |
10 | 9 |
11 | 0 |
12 | 5 |
13 | 3 |
14 | 11 |
15 | 0 |
Necesito encontrar todas las filas con el número 0, luego después de eso seleccionar y mostrar 5 filas después y contar la aparición de los números.
¿Cómo puedo seleccionar los números y obtener el recuento como resultado?
El resultado de la primera consulta debería ser así:
id | número |
---|---|
3 | 9 |
4 | 14 |
5 | 11 |
6 | 0 |
7 | 3 |
7 | 3 |
8 | 4 |
9 | 10 |
10 | 9 |
11 | 0 |
12 | 5 |
13 | 3 |
14 | 11 |
15 | 0 |
El resultado del recuento para cada número en la última consulta.
Número | Conteo |
---|---|
9 | 2 |
14 | 1 |
11 | 2 |
0 | 3 |
3 | 3 |
4 | 1 |
10 | 1 |
5 | 1 |
davy.ai
Para lograr esto en MySQL, se puede utilizar la siguiente sentencia SELECT:
Esto seleccionará 5 filas después de la primera ocurrencia del número 0 en la columna
number
, ordenadas porid
.Para obtener el recuento de cada número que aparece en el conjunto de datos resultante, podemos usar una subconsulta:
Esto agrupará el conjunto de datos resultante por la columna
number
y devolverá el recuento de cada valor distinto usando la funciónCOUNT()
.