Ответ
Агрегатные функции в SQL выполняют вычисление над набором строк и возвращают одно значение. Основные из них:
COUNT()— подсчитывает количество строк (или не-NULL значений в столбце).SELECT COUNT(*) FROM orders; -- Все заказы SELECT COUNT(DISTINCT customer_id) FROM orders; -- Уникальные клиентыSUM()— вычисляет сумму значений числового столбца.SELECT SUM(amount) FROM payments WHERE status = 'completed';AVG()— вычисляет среднее арифметическое значений.SELECT AVG(rating) FROM product_reviews;MAX()/MIN()— находят максимальное или минимальное значение.SELECT MAX(price), MIN(price) FROM products;GROUP_CONCAT()(в MySQL) /STRING_AGG()(в PostgreSQL) — объединяет строковые значения из группы в одну строку.-- MySQL SELECT department_id, GROUP_CONCAT(employee_name) FROM employees GROUP BY department_id;
Эти функции почти всегда используются с предложением GROUP BY для агрегации данных по группам.
SELECT category_id, AVG(price), COUNT(*)
FROM products
GROUP BY category_id
HAVING AVG(price) > 100; -- HAVING фильтрует результаты агрегации