Есть таблица orders(user_id, amount). Какой запрос посчитает сумму всех заказов по каждому пользователю?

ASELECT user_id, SUM(amount) FROM orders;
BSELECT user_id, SUM(amount) FROM orders GROUP BY user_id;
CSELECT SUM(user_id), amount FROM orders GROUP BY amount;
DSELECT user_id, amount FROM orders GROUP BY user_id, amount;
Правильный ответ. Для агрегатов по группам нужно явно указывать колонки в GROUP BY.

Разбор

При использовании агрегатных функций и обычных колонок в SELECT все неагрегированные колонки должны быть перечислены в GROUP BY. Для суммы по пользователю используем запрос SELECT user_id, SUM(amount) FROM orders GROUP BY user_id;.

Проверь себя · 1/3разбор после ответа
Что вернёт запрос SELECT AVG(salary) FROM employees;?
Тренировать SQL в Telegram

Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»