> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/bazy-dannykh/operacii-agregirovaniya.md).

# Операции агрегирования

Агрегирующие операции (или агрегатные функции) в базах данных — это такие функции, которые выполняются **не над каждой строкой отдельно**, а сразу над набором строк (группой или всей таблицей), и возвращают одно итоговое значение.

***

#### 📌 Основные агрегирующие функции SQL:

1. **`COUNT()`** – считает количество строк.

   ```sql
   SELECT COUNT(*) FROM orders;
   ```

   → Сколько всего заказов.
2. **`SUM()`** – сумма значений.

   ```sql
   SELECT SUM(amount) FROM orders;
   ```

   → Общая сумма всех заказов.
3. **`AVG()`** – среднее значение.

   ```sql
   SELECT AVG(salary) FROM employees;
   ```

   → Средняя зарплата сотрудников.
4. **`MIN()`** – минимальное значение.

   ```sql
   SELECT MIN(price) FROM products;
   ```

   → Самый дешёвый товар.
5. **`MAX()`** – максимальное значение.

   ```sql
   SELECT MAX(price) FROM products;
   ```

   → Самый дорогой товар.

***

#### 📌 Агрегация с `GROUP BY`

Обычно агрегаты применяются вместе с группировкой:

```sql
SELECT department, AVG(salary)
FROM employees
GROUP BY department;
```

→ Средняя зарплата по каждому отделу.

***

#### 📌 Агрегация с `HAVING`

Фильтрация по результатам агрегации:

```sql
SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 10;
```

→ Отделы, где больше 10 сотрудников.

***

🔑 **Итого:** операции агрегирования помогают анализировать данные — считать, суммировать, искать минимум/максимум и находить средние значения.
