Der Sinn einer Aggregatfunktion (und des dafür erforderlichen GROUP BY) besteht darin, viele Zeilen in eine Zeile umzuwandeln. Wenn Sie also wirklich nur die Top-5-Sparkonten und die Top-5-Girokonten und die Top-5-USD-Konten usw. wollen, brauchen Sie eher Folgendes:
Kriterien:Top 5 eines bestimmten Kontotyps nach 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;
Es ist nicht schön, aber wenn Sie die SQL mit einem Skript erstellen, ist es einfach, die account_types einzufügen und eine Abfrage zu verketten.