Ответ
Агрегатные функции в SQL выполняют вычисления над набором значений и возвращают одно результирующее значение. Они часто используются с оператором GROUP BY
для группировки данных.
Основные функции:
COUNT()
: Подсчитывает количество строк.COUNT(*)
считает все строки, аCOUNT(column)
— строки, гдеcolumn
не равенNULL
.SUM()
: Вычисляет сумму всех значений в числовом столбце.AVG()
: Вычисляет среднее значение в числовом столбце.MAX()
/MIN()
: Находят максимальное и минимальное значение в столбце.GROUP_CONCAT()
(MySQL) илиSTRING_AGG()
(PostgreSQL): Объединяет значения из нескольких строк в одну строку с указанным разделителем. Очень полезна для получения списков связанных сущностей в одном запросе.
Пример использования в Go:
// Запрос для получения средней зарплаты и количества сотрудников по отделам
rows, err := db.Query(`
SELECT department, AVG(salary), COUNT(*)
FROM employees
GROUP BY department
`)
if err != nil {
log.Fatal(err)
}
// ... дальнейшая обработка результата
В NoSQL базах данных, таких как MongoDB, похожая функциональность достигается с помощью Aggregation Pipeline и операторов $group
, $sum
, $avg
и т.д.