Il punto di una funzione di aggregazione (e del GROUP BY che richiede) è trasformare molte righe in una riga. Quindi, se vuoi davvero solo i primi 5 conti di risparmio e i primi 5 conti correnti e i primi 5 conti in USD ecc., quello che ti serve è più simile a questo:
criteri:i primi 5 tipi di conto in base a 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;
Non è carino, ma se costruisci l'SQL con uno script, inserire account_types e concatenare insieme una query è semplice.