Среднее по определению является агрегирующей функцией, поскольку она должна работать с совокупностью данных.
Чтобы получить то, что вы хотите, я бы сделал:
SELECT
accounts.*, avg_amount.amount AS avg_amount
FROM
accounts
LEFT JOIN (
SELECT account_id, AVG(amount) AS amount FROM (
SELECT month, account_id, MAX(amount) AS amount FROM invoices GROUP BY month, account_id
) AS max_amount USING(account_id)
) AS avg_amount ON (accounts.id = avg_amount.account_ID)