sql >> Databasteknik >  >> RDS >> Mysql

mysql limit inuti gruppen?

Poängen med en aggregatfunktion (och den GROUP BY som den kräver) är att förvandla många rader till en rad. Så om du verkligen bara vill ha de 5 bästa sparkontona och de 5 bästa checkkontona och de 5 bästa USD-kontona etc., vad du behöver är mer så här:

kriterier:topp 5 av en viss kontotyp efter account_balance

SELECT account_type, account_balance FROM accounts WHERE account_type='savings' 
   ORDER BY account_balance DESC LIMIT 5
UNION
SELECT account_type, account_balance FROM accounts WHERE account_type='chequing' 
   ORDER BY account_balance DESC LIMIT 5
UNION
SELECT account_type, account_balance FROM accounts WHERE account_type='USD' 
   ORDER BY account_balance DESC LIMIT 5;

Det är inte snyggt, men om du konstruerar SQL med ett skript är det enkelt att prenumerera på account_types och sammanfoga en fråga.



  1. MySQL-tidsstämpel till Java-datumkonvertering

  2. Få en ny beställning efter limit

  3. Hur konverterar jag BLOB till VARCHAR i MySQL?

  4. bind_param error - Antalet element i typdefinitionssträngen matchar inte antalet bindningsvariabler