Какие агрегатные функции в SQL вы знаете и для чего они используются?

Ответ

Агрегатные функции в 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 и т.д.