Максимум по группам находит пики: самый дорогой заказ в каждом городе.
MAX(поле) с GROUP BY возвращает максимум в каждой группе.
Максимальная сумма заказа по городам.
MAX(o.amount) AS max_amount
MAX по группе ≠ максимум по всей таблице — нужен GROUP BY.
Для каждого city выведи максимальную сумму заказа (max_amount).