В стандартном SQL, если у вас есть предложение GROUP BY, все столбцы, которые не являются его частью, должны быть в виде агрегатов.В MySQL это правило было ослаблено из-за дизайна.
Например, это разрешено в MySQL, но не в стандартном SQL:
SELECT customer_id, country, SUM(amount) FROM records GROUP BY customer_id
Есть одно предупреждение: MySQL предполагает, что вы знаете, чтоделаешьЕсли один и тот же клиент имеет записи в нескольких странах, запрос просто захватит первую страну в таблице, игнорируя все остальные.Кроме того, поскольку порядок строк не определен, а ORDER BY отсутствует, вы можете получать разные результаты при каждом выполнении запроса.
В стандартном SQL у вас есть два варианта:
SELECT customer_id, country, SUM(amount) FROM records GROUP BY customer_id, country
или
SELECT customer_id, MIN(country), SUM(amount) FROM records GROUP BY customer_id