Задача агрегатной функции (и необходимой ей GROUP BY) состоит в том, чтобы превратить много строк в одну строку. Так что, если вы действительно хотите получить 5 лучших сберегательных счетов и 5 лучших чековых счетов, 5 лучших долларовых счетов и т. Д., То вам нужно больше:
критерий: топ-5 определенного типа счета по 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;
Это не красиво, но если вы создаете SQL с помощью скрипта, тогда вставка в account_types и объединение запроса в запрос выполняется просто.