Целта на агрегатната функция (и GROUP BY, която тя изисква) е да превърне много редове в един ред. Така че, ако наистина искате само първите 5 спестовни сметки и първите 5 чекови сметки и първите 5 сметки в щатски долари и т.н., това, от което се нуждаете, е по-скоро следното:
критерии:топ 5 на определен тип сметка по сметка_баланс
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;
Не е красиво, но ако конструирате SQL със скрипт, тогава подмяната в account_types и конкатенирането на заявка е лесна.