Pointen med en aggregeret funktion (og den GROUP BY den kræver) er at lave mange rækker til en række. Så hvis du virkelig bare vil have top 5 opsparingskonti og top 5 checkkonti og top 5 USD konti osv., hvad du har brug for er mere som dette:
kriterier:top 5 af en bestemt kontotype 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 er ikke kønt, men hvis du konstruerer SQL'en med et script, så er det ligetil at subb i account_types og sammenkæde en forespørgsel.