Этот вопрос проверяет умение применять в запросах функции, которые выполняют вычисления над набором строк.
Агрегатные функции, такие как СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ и СРЕДНЕЕ, используются для вычисления итоговых значений по группе записей. Они применяются в перечне полей оператора ВЫБРАТЬ и почти всегда используются вместе с оператором СГРУППИРОВАТЬ ПО, который определяет, как разбивать записи на группы для расчета.
Агрегатные функции сворачивают множество строк в одно результирующее значение.
Основные агрегатные функции:
СУММА(Поле): Вычисляет сумму значений числового поля по группе.
КОЛИЧЕСТВО(Поле), КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Поле): Подсчитывает количество записей в группе или количество уникальных значений.
МИНИМУМ(Поле), МАКСИМУМ(Поле): Находит минимальное и максимальное значение в группе.
СРЕДНЕЕ(Поле): Вычисляет среднее арифметическое значение.
Важность СГРУППИРОВАТЬ ПО:
Когда вы используете агрегатную функцию, все поля в перечне ВЫБРАТЬ, которые не являются аргументами этих функций, должны быть перечислены в СГРУППИРОВАТЬ ПО. Это говорит системе, по каким полям следует группировать данные для расчета.
Пример:
Мы хотим узнать общее количество и сумму продаж по каждому товару.
ВЫБРАТЬ
Реализация.Номенклатура КАК Номенклатура,
СУММА(Реализация.Количество) КАК КоличествоПродано,
СУММА(Реализация.Сумма) КАК СуммаПродаж
ИЗ
Документ.РеализацияТоваров КАК Реализация
СГРУППИРОВАТЬ ПО
Реализация.Номенклатура // Группируем по товаруВ этом запросе:
Строчки данных группируются по полю Номенклатура.
Для каждой такой группы (для каждого товара) вычисляется сумма по полям Количество и Сумма.
На выходе мы получаем не все строки продаж, а только по одной строке на каждый товар с итоговыми показателями.
Вывод:
Агрегатные функции — основа для построения любых отчетов, дашбордов и аналитики. Без них невозможно получить сводные данные о продажах, остатках, движении денежных средств и т.д.