sql >> Databáze >  >> RDS >> Mysql

Získejte prvních/posledních n záznamů na skupinu podle

Hodně zjednodušené a opravené řešení Carlos (jeho řešení by vrátilo prvních 5 řádků, ne posledních...):

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

V MySQL můžete použít tB1.textB i když je seskupena podle dotazu, protože seskupujete podle idB v první tabulce, takže existuje pouze jedna hodnota tB1.textB pro každou skupinu...



  1. Zkombinujte dvě tabulky do nové, takže vybrané řádky z druhé tabulky budou ignorovány

  2. Jak upravujete uloženou proceduru v MySQL?

  3. Srovnávání spravovaných cloudových řešení PostgreSQL – Google Cloud:Část třetí

  4. Jak Cosh() funguje v PostgreSQL