El objetivo de una función agregada (y el GROUP BY que requiere) es convertir muchas filas en una fila. Entonces, si realmente solo quiere las 5 cuentas de ahorro principales, las 5 cuentas corrientes principales y las 5 cuentas principales en USD, etc., lo que necesita es más como esto:
criterios:los 5 primeros de un tipo de cuenta en particular por 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;
No es bonito, pero si construyes el SQL con una secuencia de comandos, sustituir los tipos de cuenta y concatenar una consulta es sencillo.