Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obtenha os primeiros/últimos n registros por grupo por


Solução de Carlos muito simplificada e corrigida (sua solução retornaria as primeiras 5 linhas, não as últimas ...):
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

No MySQL, você pode usar tB1.textB mesmo que seja agrupar por consulta, porque você está agrupando pelo idB na primeira tabela, portanto, há apenas um valor único de tB1.textB para cada grupo...