es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr esto en MySQL, se puede utilizar la siguiente sentencia SELECT:

    SELECT t1.id, t1.number
    FROM raw_table AS t1
    WHERE t1.number = 0
    ORDER BY t1.id
    LIMIT 5 OFFSET 1;
    

    Esto seleccionará 5 filas después de la primera ocurrencia del número 0 en la columna number, ordenadas por id.

    Para obtener el recuento de cada número que aparece en el conjunto de datos resultante, podemos usar una subconsulta:

    SELECT 
        t2.number,
        COUNT(*) AS `Count`
    FROM (
        SELECT t1.id, t1.number
        FROM raw_table AS t1
        WHERE t1.number = 0
        ORDER BY t1.id
        LIMIT 5 OFFSET 1
    ) AS t2
    GROUP BY t2.number;
    

    Esto agrupará el conjunto de datos resultante por la columna number y devolverá el recuento de cada valor distinto usando la función COUNT().

Comments are closed.