# Поле свода (Rollup) в Baserow: расчёты по связанным строкам

> Функции sum, avg, count, min и max суммируют связанные строки без формул - как настроить поле свода и чем оно отличается от подстановки и подсчёта.

Source: https://opennix.org/docs/baserow/field-types/rollup-field/


Поле свода (Rollup) выполняет вычисление - сумму, среднее, подсчёт и другие функции - по значениям всех строк, связанных через поле «связь с таблицей», и показывает результат прямо в текущей таблице; статья объясняет, чем такое поле отличается от подстановки и подсчёта, как его создать и как читать таблицу доступных функций.

![Настройка нового поля свода в Baserow](/images/baserow/field-types/rollup-field-configure-new-field.webp)

## Что такое поле свода

Поле свода работает поверх уже настроенного [поля «связь с таблицей»](/docs/baserow/field-types/link-to-table-field/). Если [поле подстановки](/docs/baserow/field-types/lookup-field/) просто отображает одно значение из связанной строки (например, email), то поле свода выполняет вычисление сразу по всем связанным строкам - сумму, среднее, минимум, максимум и так далее.

Поле свода доступно только для чтения: значение нельзя отредактировать вручную. Это автоматический расчёт, который пересчитывается каждый раз, когда меняются данные в связанных строках.

## Как создать поле свода

### Обязательное условие

Прежде чем создавать поле свода, в таблице уже должно быть настроено [поле «связь с таблицей»](/docs/baserow/field-types/link-to-table-field/).

### Шаги

1. В таблице нажмите на значок «+», чтобы [добавить новое поле](/docs/baserow/fields/adding-a-field/).
2. Введите название поля, например «Общая сумма» или «Средний рейтинг».
3. Выберите **Свод (Rollup)** из выпадающего списка типов поля.
4. В панели настройки укажите три параметра:
   - **Поле связи**: выберите [поле «связь с таблицей»](/docs/baserow/field-types/link-to-table-field/), которое будет источником связанных строк;
   - **Поле для свода**: выберите конкретное поле из связанной таблицы, значения которого нужно агрегировать (например, «Сумма заказа»);
   - **Функция свода**: выберите нужное вычисление (например, «sum»).
5. Нажмите **Создать**.

Новое поле сразу заполнится результатом вычисления и останется доступным только для чтения.

## Функции свода

Поле свода поддерживает несколько функций агрегации. Выбранная функция должна быть совместима с типом поля, которое агрегируется: например, суммировать (`sum`) можно только [числовое поле](/docs/baserow/field-types/number-field/).

| Функция | Описание | Совместимые типы полей |
|---|---|---|
| `sum` | Суммирует все значения | [Число](/docs/baserow/field-types/number-field/) |
| `avg` | Считает среднее по всем значениям | [Число](/docs/baserow/field-types/number-field/) |
| `count` | Возвращает количество связанных строк | Любой тип |
| `max` | Возвращает наибольшее значение | [Число](/docs/baserow/field-types/number-field/), [Дата](/docs/baserow/field-types/date-and-time-fields/), [Текст](/docs/baserow/field-types/single-line-text-field/) |
| `min` | Возвращает наименьшее значение | [Число](/docs/baserow/field-types/number-field/), [Дата](/docs/baserow/field-types/date-and-time-fields/), [Текст](/docs/baserow/field-types/single-line-text-field/) |
| `any` | Возвращает «истина», если хотя бы одно связанное логическое значение истинно | [Логическое](/docs/baserow/field-types/boolean-field/) |
| `every` | Возвращает «истина», если истинны все связанные логические значения | [Логическое](/docs/baserow/field-types/boolean-field/) |
| `stddev_sample` | Выборочное стандартное отклонение | [Число](/docs/baserow/field-types/number-field/) |
| `stddev_pop` | Стандартное отклонение генеральной совокупности | [Число](/docs/baserow/field-types/number-field/) |
| `variance_sample` | Выборочная дисперсия | [Число](/docs/baserow/field-types/number-field/) |
| `variance_pop` | Дисперсия генеральной совокупности | [Число](/docs/baserow/field-types/number-field/) |

### Пример: клиенты и заказы

Это самый наглядный способ показать суть свода. Допустим, есть две таблицы, и нужно увидеть **общую сумму, потраченную каждым клиентом**, прямо в таблице «Клиенты».

1. **Клиенты**: содержит поле «Имя клиента».
2. **Заказы**: содержит «Номер заказа», [числовое поле](/docs/baserow/field-types/number-field/) «Сумма заказа» и [поле связи](/docs/baserow/field-types/link-to-table-field/) «[Связь] Клиент».

**Решение:** в таблице «Клиенты» создаётся поле свода с названием «Общая сумма»:

- **Поле связи**: выбирается поле «[Связь] Клиент»;
- **Поле для свода**: выбирается поле «Сумма заказа» из таблицы «Заказы»;
- **Функция свода**: выбирается `sum`.

Поле «Общая сумма» автоматически считает и показывает сумму всех связанных заказов для каждого клиента (например, «15 000 ₽»).

## Часто задаваемые вопросы

**В чём разница между сводом, подстановкой и подсчётом?** Все три типа опираются на [поле «связь с таблицей»](/docs/baserow/field-types/link-to-table-field/), но решают разные задачи: [«связь с таблицей»](/docs/baserow/field-types/link-to-table-field/) создаёт саму связь между строками; [подстановка](/docs/baserow/field-types/lookup-field/) отображает конкретное значение из связанной строки (например, email клиента); [подсчёт](/docs/baserow/field-types/count-field/) считает количество связанных строк (например, «3 заказа»); свод выполняет вычисление по связанным строкам (например, сумму «Суммы заказа»).

**Чем функция `count` в поле свода отличается от отдельного поля подсчёта?** Результат одинаковый. [Поле подсчёта](/docs/baserow/field-types/count-field/) - это отдельный упрощённый тип поля именно для этой одной задачи, а функция `count` в поле свода - лишь одна из множества доступных функций.

**Почему поле свода нельзя редактировать?** Это поле только для чтения, которое показывает результат вычисления. Чтобы изменить значение, нужно изменить данные в связанных строках - например, добавить новый заказ или изменить сумму существующего.

## Что дальше

Изучите [поле «связь с таблицей»](/docs/baserow/field-types/link-to-table-field/), чтобы понять, как строятся связи между таблицами, [поле подстановки](/docs/baserow/field-types/lookup-field/) - для отображения отдельных значений из связанных строк, и [поле подсчёта](/docs/baserow/field-types/count-field/) - для простого подсчёта связанных строк. Раздел [«Обзор типов полей»](/docs/baserow/fields/baserow-field-overview/) поможет сравнить свод с другими вычисляемыми полями, а [«Настройка полей»](/docs/baserow/fields/field-customization/) - освоить сортировку, фильтрацию и скрытие для любого типа поля.

