Ответ
Да, можно. Агрегатные функции (SUM, AVG, COUNT, MAX, MIN) без GROUP BY применяются ко всей выборке как к одной группе, возвращая единственную строку результата.
Примеры:
-- Считает общее количество строк в таблице
SELECT COUNT(*) FROM employees;
-- Вычисляет среднюю зарплату по всем сотрудникам
SELECT AVG(salary) FROM employees;
-- Находит максимальную зарплату в компании
SELECT MAX(salary) FROM employees;
Важное правило: Если в SELECT есть и агрегатные функции, и обычные столбцы, то все обычные столбцы должны быть указаны в GROUP BY. Иначе возникнет ошибка.
Сравнение:
-- ОШИБКА: column "department" must appear in GROUP BY clause
SELECT department, SUM(salary) FROM employees;
-- ПРАВИЛЬНО: группировка по отделам
SELECT department, SUM(salary)
FROM employees
GROUP BY department;
Таким образом, GROUP BY превращает агрегацию по всей таблице в агрегацию по группам.