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

limite mysql dentro do grupo?


O objetivo de uma função de agregação (e o GROUP BY que ela requer) é transformar muitas linhas em uma única linha. Então, se você realmente quer apenas as 5 principais contas de poupança e as 5 principais contas correntes e as 5 principais contas em dólares etc., o que você precisa é mais assim:

critérios:top 5 de um tipo de conta específico por 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;

Não é bonito, mas se você construir o SQL com um script, então inserir o account_types e concatenar uma consulta é simples.