Агрегатные функции

Сумма
Количество
Количество различных
Максимум
Минимум
Среднее
Массив
ТаблицаЗначений
Свернуть
ПолучитьЧасть
Упорядочить
СоединитьСтроки
ГрупповаяОбработка
Каждый
Любой
СтандартноеОтклонениеГенеральнойСовокупности
СтандартноеОтклонениеВыборки
ДисперсияВыборки
ДисперсияГенеральнойСовокупности
КовариацияГенеральнойСовокупности
КовариацияВыборки
Корреляция
РегрессияНаклон
РегрессияОтрезок
РегрессияКоличество
РегрессияR2
РегрессияСреднееX
РегрессияСреднееY
РегрессияSXX
РегрессияSYY
РегрессияSXY
МестоВПорядке
КлассификацияABC

Агрегатные функции осуществляют некоторое действие над набором данных.

Важно. Если параметр функции имеет тип Строка и в нем указывается имя поля, которое содержит пробелы, то такое имя поля должно быть заключено в квадратные скобки.
Например: "[Количество Оборот]".

Сумма (Total)

Агрегатная функция Сумма рассчитывает сумму значений выражений, переданных ей в качестве аргумента для всех детальных записей. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива.

Пример:

Сумма(Продажи.СуммаОборот)

Количество (Count)

Функция Количество рассчитывает количество значений отличных от значения NULL. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива.

Пример:

Количество(Продажи.Контрагент)

Количество различных

Эта функция рассчитывает количество различных значений. В указания получения различных значений следует перед параметром метода Количество указать Различные (Distinct). В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива.

Пример:

Количество(Различные Продажи.Контрагент)

Максимум (Maximum)

Функция получает максимальное значение. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива.

Пример:

Максимум(Остатки.Количество)

Минимум (Minimum)

Функция получает минимальное значение. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива.

Пример:

Минимум(Остатки.Количество)

Среднее (Average)

Функция получает среднее значение для значений, отличных от NULL. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива.

Пример:

Среднее(Остатки.Количество)

Массив (Array)

Функция формирует массив, содержащий для каждой детальной записи значение параметра. 

Синтаксис:

Массив([Различные] Выражение)

В качестве параметра можно использовать таблицу значений. При этом результатом работы функции будет массив, содержащий значения первой колонки таблицы значений, переданной в качестве параметра.
Если выражение содержит функцию Массив, то считается, что данное выражение является агрегатным.
Если указано ключевое слово Различные, то получаемый массив не будет содержать дублирующихся значений.

Пример:

Массив(Контрагент)

ТаблицаЗначений (ValueTable)

Функция формирует таблицу значений, содержащую столько колонок, сколько параметров у функции. Детальные записи получаются из наборов данных, которые нужны для получения всех полей, участвующих в выражениях параметров функции. 

Синтаксис:

ТаблицаЗначений([Различные] Выражение1 [КАК ИмяКолонки1][, Выражение2 [КАК ИмяКолонки2],...])

Если параметрами функции выступают поля–остатки, то в результирующую таблицу значений попадут значения для записей по уникальным комбинациям измерений из других периодов. При этом значения получаются только для полей-остатков, измерений, счетов, полей периодов и их реквизитов. Значениями остальных полей в записях из других периодов считаются равными NULL.
Если выражение содержит функцию ТаблицаЗначений, то считается, что данное выражение является агрегатным.
Если указано ключевое слово Различные, то в получаемой таблице значений не будет строк, содержащих одинаковые данные.
После каждого параметра может располагаться необязательное ключевое слово КАК и имя, которое будет назначено колонке таблицы значений.

Пример:

ТаблицаЗначений(Различные Номенклатура, ХарактеристикаНоменклатуры КАК Характеристика)

Свернуть (GroupBy)

Функция предназначена для удаления дубликатов из массива.

Синтаксис:

Свернуть(Выражение, НомераКолонок)

Параметры:

  • Выражение - выражение типа Массив или ТаблицаЗначений, значения элементов которого нужно свернуть;
  • НомераКолонок - (если выражение имеет тип ТаблицаЗначений) тип Строка. Номера или имена (через запятую) колонок таблицы значений, среди которых нужно искать дубликаты. По умолчанию – все колонки.

Пример:

Свернуть(ТаблицаЗначений(НомерТелефона, Адрес) ,"НомерТелефона");

ПолучитьЧасть (GetPart)

Функция получает таблицу значений, содержащую определенные колонки из исходной таблицы значений.

Синтаксис:

ПолучитьЧасть(Выражение, НомераКолонок)

Параметры:

  • Выражение - тип ТаблицаЗначений. Таблица значений, из которой нужно получить колонки;
  • НомераКолонок - тип Строка. Номера или имена (через запятую) колонок таблицы значений, которые нужно получить.

Возвращаемое значение: ТаблицаЗначений, в которой имеются только колонки, которые указаные в параметре.

Пример:

ПолучитьЧасть(Свернуть(ТаблицаЗначений(НомерТелефона, Адрес) ,"НомерТелефона"),"НомерТелефона");

Упорядочить (Order)

Предназначена для упорядочивания элементов массива и таблицы значений.

Синтаксис:

Упорядочить(Выражение, НомераКолонок)

Параметры:

  • Выражение - Массив или ТаблицаЗначений, из которой нужно получить колонки;
  • НомераКолонок - (если выражение имеет тип ТаблицаЗначений) номера или имена (через запятую) колонок таблицы значений, по которым нужно упорядочить. Может содержать направление упорядочивания и необходимость автоупорядочивания: Убыв/Возр + Автоупорядочивание.

Возвращаемое значение: Массив или ТаблицаЗначений, с упорядоченными элементами.

Пример:

Упорядочить(ТаблицаЗначений(НомерТелефона, Адрес, ДатаЗвонка),"ДатаЗвонка Убыв");

СоединитьСтроки (JoinStrings)

Предназначена для объединения строк в одну строку.

Синтаксис:

СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок)

Параметры:

  • Значение - выражения, которые нужно объединить в одну строку. Если является Массивом, то в строку будут объединяться элементы массива. Если является ТаблицаЗначений, то в строку будут объединяться все колонки и строки таблицы;
  • РазделительЭлементов - строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк;
  • РазделителиКолонок -строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию "; ".

Пример:

СоединитьСтроки(ТаблицаЗначений(НомерТелефона, Адрес));

ГрупповаяОбработка (GroupProcessing)

Возвращает объект ДанныеГрупповойОбработкиКомпоновкиДанных. В объект в свойство Данные помещается в виде таблицы значений значения группировок для каждого выражения, указанного в параметре функции Выражения. В случае использования иерархической группировки каждый уровень иерархии обрабатывается отдельно. Значения для иерархических записей также помещаются в данные.
В свойство ТекущийЭлемент объекта помещается строка таблицы значений, для которой в настоящий момент вычисляется функция.

Синтаксис:

ГрупповаяОбработка(Выражения, ВыраженияИерархии, ИмяГруппировки)

Параметры:

  • Выражения. Выражения, которые нужно вычислить. Строка, в которой через запятую перечислены выражения, которые нужно вычислить. После каждого выражение возможно наличие необязательного ключевого слова КАК и имени колонки результирующей таблицы значений. Каждое выражение образует колонку таблицы значений свойства Данные объекта ДанныеГрупповойОбработкиКомпоновкиДанных.
  • ВыраженияИерархии. Выражения, которые нужно вычислить для иерархических записей. Аналогично параметру Выражения с тем отличием, что параметр ВыраженияИерархии используется для иерархических записей. Если параметр не указан, то для вычисления значений для иерархических записей используется выражения, указанные в параметре Выражение.
  • ИмяГруппировки. Имя группировки, в которой нужно вычислять группировку обработки. Строка. Если не указано, то вычисление происходит в текущей группировке. Если вычисление идет в таблице и параметр содержит пустую строку, или не указан, то значение вычисляется для группировки – строки. Компоновщик макета при генерации макета компоновки данных заменяет данное имя на имя группировки в результирующем макете. Если группировка не доступна, то функция будет заменена на значение NULL.

Каждый (Every)

Если хоть одна запись имеет значение Ложь, то результат Ложь. Иначе Истина.

Синтаксис:

Каждый(Выражение)

Параметр:

  • Выражение - тип Булево

Пример:

Каждый()

Любой (Any)  

Если хоть одна запись имеет значение Истина, то результат Истина. Иначе Ложь

Синтаксис:

Любой(Выражение)

Параметр:

  • Выражение - тип Булево

Пример:

Любой()

СтандартноеОтклонениеГенеральнойСовокупности (Stddev_Pop)

Вычисляет стандартное отклонение совокупности. Вычисляется по формуле: SQRT(ДисперсияГенеральнойСовокупности(X))

Синтаксис:

СтандартноеОтклонениеГенеральнойСовокупности(Выражение)

Параметр:

  • Выражение - тип Число

Тип возвращаемого значения Число.

Пример:

Таблица:

X Y
1 7
2 1
3 2
4 5
5 7
6 34
7 32
8 43
9 87

ВЫБРАТЬ ДисперсияВыборки(Y, X) ИЗ Таблица

Результат: 805.694444
СтандартноеОтклонениеВыборки (Stddev_Samp)

Вычисляет совокупное типовое стандартное отклонение. Вычисляется по формуле: SQRT(ДисперсияВыборки(X))

Синтаксис:

СтандартноеОтклонениеВыборки(Выражение)

Параметр:

  • Выражение - тип Число

Тип возвращаемого значения Число.

Пример:

Таблица:

X Y
1 7
2 1
3 2
4 5
5 7
6 34
7 32
8 43
9 87

ВЫБРАТЬ СтандартноеОтклонениеВыборки(Y) ИЗ Таблица

Результат: 28.3847573
ДисперсияВыборки  (Var_Samp)

Вычисляет типовое различие ряда чисел без учета значений NULL в этом наборе. Вычисляется по формуле: (Сумма(X^2) - Сумма(X)^2 / Количество(X)) / (Количество(X) - 1)
        Если Количество(X) = 1, то возвращается значение NULL.

Синтаксис:

ДисперсияВыборки(Выражение)

Параметр:

  • Выражение - тип Число

Пример:

Таблица:

X Y
1 7
2 1
3 2
4 5
5 7
6 34
7 32
8 43
9 87

ВЫБРАТЬ ДисперсияВыборки(Y, X) ИЗ Таблица

Результат: 805.694444
ДисперсияГенеральнойСовокупности (Var_Pop)

Вычисляет различие совокупности ряда чисел без учета значений NULL в этом наборе. Вычисляется по формуле: (Сумма(X ^2) - Сумма(X)^2 / Количество(X)) / Количество(X)

Синтаксис:

ДисперсияГенеральнойСовокупности(Выражение)

Параметр:

  • Выражение - тип Число

Пример:

Таблица:

X Y
1 7
2 1
3 2
4 5
5 7
6 34
7 32
8 43
9 87

ВЫБРАТЬ ДисперсияГенеральнойСовокупности(Y, X) ИЗ Таблица

Результат: 716.17284
КовариацияГенеральнойСовокупности (Covar_Pop) 

Вычисляет ковариацию ряда числовых пар. Вычисляется по формуле: (Сумма(Y * X) - Сумма(X) * Сумма(Y) / n) / n, где n число пар (Y, X) в которых ни Y ни X не являются NULL.

Синтаксис:

КовариацияГенеральнойСовокупности(Y, X)

Параметры:

  • Y - тип Число
  • X - тип Число. 
  • Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ КовариацияГенеральнойСовокупности(Y, X) ИЗ Таблица

    Результат: 59.4444444

    КовариацияВыборки (Covar_Samp)

    Вычисляет типовое различие ряда чисел без учета значений NULL в этом наборе. Вычисляется по формуле: (Сумма(Y * X) - Сумма(Y) * Сумма(X) / n) / (n-1), где n число пар (Y, X) в которых ни Y ни X не являются NULL

    Синтаксис:

    КовариацияВыборки(Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число.
     

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ КовариацияВыборки(Y, X) ИЗ Таблица

    Результат: 66.875

    Корреляция (Corr)

    Вычисляет коэффициент корреляции ряда числовых пар. Вычисляется по формуле: КовариацияГенеральнойСовокупности(Y, X) / (СтандартноеОтклонениеГенеральнойСовокупности(Y) * СтандартноеОтклонениеГенеральнойСовокупности(X)) Не учитываются пары, в которых Y или X NULL.

    Синтаксис:

    Корреляция(Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число. 

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ Корреляция(X, Y) ИЗ Таблица

    Результат: 0.860296149

    РегрессияНаклон (Regr_Slope)

    Вычисляет наклон линии. Вычисляется по формуле: КовариацияГенеральнойСовокупности(Y, X) / ДисперсияГенеральнойСовокупности(X). Вычисляется без учета пар, содержащих NULL.

    Синтаксис:

    РегрессияНаклон(Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число. 

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияНаклон(Y, X) ИЗ Таблица

    Результат: 8.91666667

    РегрессияОтрезок (Regr_Intercept)

    Вычисляет Y-точку пересечения линии регресса. Вычисляется по формуле:

    Среднее(Y) - РегрессияНаклон(Y, X) * Среднее(X). Вычисляется без учета пар, содержащих NULL.

    Синтаксис:

    РегрессияОтрезок(Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число. 

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияОтрезок(Y, X) ИЗ Таблица

    Результат: -20.361111

    РегрессияКоличество (Regr_Count)

    Вычисляет количество пар не содержащих NULL.

    Синтаксис:

    РегрессияКоличество(Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияКоличество(Y, X) ИЗ Таблица

    Результат: 9

    РегрессияR2 (Regr_R2)

    Вычисляет коэффициент детерминации. Вычисляется без учета пар, содержащих NULL.

    Синтаксис:

    РегрессияR2(Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число. 

    Null - если ДисперсияГенеральнойСовокупности(X) = 0;

    1 - если ДисперсияГенеральнойСовокупности(Y)=0 И ДисперсияГенеральнойСовокупности(X)<>0;

    POW(Корреляция(Y,X),2) - если ДисперсияГенеральнойСовокупности(Y)>0 И ДисперсияГенеральнойСовокупности(X)<>0

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияR2(Y, X) ИЗ Таблица

    Результат: 0.740109464

    РегрессияСреднееX (Regr_AvgX)

    Вычисляет среднее число X после исключения X и Y пар, где или X или Y являются пустыми. Среднее(X) вычисляется без учета пар, содержащих NULL.

    Синтаксис:

    РегрессияСреднееX(Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число. 

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияСреднееX(Y, X) ИЗ Таблица

    Результат: 5

    РегрессияСреднееY (Regr_AvgY)

    Вычисляет среднее число Y после исключения X и Y пар, где или X или Y являются пустыми. Среднее(Y) вычисляется без учета пар, содержащих NULL.

    Синтаксис:

    РегрессияСреднееY (Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияСреднееY(Y, X) ИЗ Таблица

    Результат: 24.2222222

    РегрессияSXX (Regr_SXX)

    Вычисляется по формуле: РегрессияКоличество(Y, X) * ДисперсияГенеральнойСовокупности(X). Вычисляется без учета пар, содержащих NULL.

    Синтаксис:

    РегрессияSXX (Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число

    Возвращает сумму квадратов независимых выражений, используемых в линейной модели регресса. Функция может использоваться, чтобы оценить статистическую обоснованность модели регресса.

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияSXX(Y, X) ИЗ Таблица

    Результат: 60

    РегрессияSYY (Regr_SYY)

    Вычисляется по формуле: РегрессияКоличество(Y, X) * ДисперсияГенеральнойСовокупности(Y). Вычисляется без учета пар, содержащих NULL.

    Синтаксис:

    РегрессияSYY (Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияSYY(Y, X) ИЗ Таблица

    Результат: 6445.55556

    РегрессияSXY (Regr_SXY)

    Вычисляется по формуле: РегрессияКоличество(Y, X) * КовариацияГенеральнойСовокупности(Y, X) Вычисляется без учета пар, содержащих NULL.

    Синтаксис:

    РегрессияSXY (Y, X)

    Параметры:

    • Y - тип Число
    • X - тип Число

    Пример:

    Таблица:

    X Y
    1 7
    2 1
    3 2
    4 5
    5 7
    6 34
    7 32
    8 43
    9 87

    ВЫБРАТЬ РегрессияSXY(Y, X) ИЗ Таблица

    Результат: 535

    МестоВПорядке (Rank)

    Синтаксис:

    МестоВПорядке(Порядок, ПорядокИеррахии, ИмяГруппировки)

    Параметры:

    • Порядок – тип Строка. Содержит выражения, в последовательности которых нужно расположить групповые записи, разделенные через запятую. Направление упорядочивания управляется при помощи слов Возр, Убыв. После поля также можно указать строку Автоупорядочивание, что обозначает, что при упорядочивании ссылок нужно использовать поля упорядочивания, определенные для объекта, на который ссылка. Если последовательность не указана, то значение рассчитывается в последовательности группировки;
    • ПорядокИеррахии – тип Строка. Содержит выражения упорядочивания для иерархических записей;
    • ИмяГруппировки – тип Строка. Имя группировки, в которой нужно вычислять группировку обработки. Если не указано, то вычисление происходит в текущей группировке. Если вычисление идет в таблице и параметр содержит пустую строку, или не указан, то значение вычисляется для группировки – строки. Компоновщик макета при генерации макета компоновки данных заменяет данное имя на имя группировки в результирующем макете. Если группировка не доступна, то функция будет заменена на значение NULL.

    Если в последовательности имеются две или более записей с одинаковыми значениями полей упорядочивания, то для всех записей функция возвращает одинаковые значения.

    Пример:

    МестоВПорядке("[Количество Оборот]")

    КлассификацияABC (ClassificationABC)

    Синтаксис:

    КлассификацияABC(Значение, КоличествоГрупп, ПроцентыДляГрупп, ИмяГруппировки)

    Параметры:

    • Значение – тип Строка.  по которому нужно рассчитывать классификацию. Строка, в которой указано выражение;
    • КоличествоГрупп - тип Число. Задает количество групп, на который нужно разбить;
    • ПроцентыДляГрупп - тип Строка. Столько, на сколько групп нужно разбить минус 1. Через запятую. Если не задано, то автоматически;
    • ИмяГруппировки– тип Строка. Имя группировки, в которой нужно вычислять группировку обработки. Если не указано, то вычисление происходит в текущей группировке. Если вычисление идет в таблице и параметр содержит пустую строку, или не указан, то значение вычисляется для группировки – строки. Компоновщик макета при генерации макета компоновки данных заменяет данное имя на имя группировки в результирующем макете. Если группировка не доступна, то функция будет заменена на значение NULL.

    Результатом работы функции будет номер класса, начиная с 1, который соответствует классу A.

    Пример:

    КлассификацияABC("Сумма(ВаловаяПрибыль)", 3, "60, 90")

     

    см. также:
                          
    Язык выражений системы компоновки данных
                           Двуязычное представление ключевых слов системы компоновки данных

    1C:Enterprise Developer's Community