sql >> Base de Datos >  >> RDS >> Mysql

Obtener primeros/últimos n registros por grupo por

Solución de Carlos muy simplificada y corregida (su solución devolvería las primeras 5 filas, no la última...):

SELECT tB1.idA, tB1.idB, tB1.textB
FROM tableB as tB1
    JOIN tableB as tB2
        ON tB1.idA = tB2.idA AND tB1.idB <= tB2.idB
GROUP BY tB1.idA, tB1.idB
HAVING COUNT(*) <= 5

En MySQL, puede usar tB1.textB incluso si es un grupo por consulta, porque está agrupando por idB en la primera tabla, por lo que solo hay un valor único de tB1.textB para cada grupo...