Mysql
 sql >> Base de données >  >> RDS >> Mysql

limite mysql à l'intérieur du groupe?

Le but d'une fonction d'agrégation (et du GROUP BY qu'elle requiert) est de transformer plusieurs lignes en une seule ligne. Donc, si vous ne voulez vraiment que les 5 meilleurs comptes d'épargne et les 5 meilleurs comptes de chèques et les 5 meilleurs comptes en USD, etc., ce dont vous avez besoin ressemble plus à ceci :

critères :top 5 d'un type de compte particulier par 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;

Ce n'est pas joli, mais si vous construisez le SQL avec un script, il est simple de substituer les types de compte et de concaténer une requête.