Перейти к содержанию

Оконные функции

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

Синтаксис формул похож на SQL.

Общий синтаксис оконной функции:

<FUNCTION_NAME> (
                    expression,

                    TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
                    ORDER BY field_1, ..., field_N
                )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

AVG (оконная)

#оконная

Позволяет рассчитать среднее значение для данных из строк выборки (окна).

Возвращает среднее арифметическое значение выражения expression с учетом группировки.

AVG ( 
        expression 
        TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N 
    )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное)

Похожие: AVG | AVG_IF | AVG_IF (оконная) | MAVG | RAVG | MEDIAN

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить среднее значение прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу.

Формула:

AVG (
        SUM (
                [orders_profit]
            ) 
        TOTAL
    )
AVG (
        SUM (
                [orders_profit]
            ) 
        WITHIN [customer_id]
    ) 
AVG (
        SUM (
                [orders_profit]
            ) 
        AMONG [customer_id]
    ) 

Результат:

AVG_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

AVG_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_avg (прибыль среднее), в Промежуточное значение указана формула AVG (SUM ([orders_profit]) TOTAL)(1)
  1. ℹ функция суммирует все значения прибыли, а затем делит на общее количество значений, так как не используется группировка (TOTAL)

AVG_w_step2

  • Profit_avg_cust (прибыль среднее по клиенту), в Промежуточное значение указана формула AVG (SUM ([orders_profit]) WITHIN [customer_id])(1)
  1. ℹ функция суммирует значения прибыли по клиенту, так как используется группировка (WITHIN), а затем делит на количество записей по клиенту

AVG_w_step2_1

  • Profit_avg_ord (прибыль среднее по заказу), в Промежуточное значение указана формула AVG (SUM ([orders_profit]) AMONG [customer_id])(1)
  1. ℹ функция суммирует значения прибыли по заказу, так как используется группировка (AMONG) НЕ по клиенту, а затем делит на количество записей по заказу

AVG_w_step2_2

4.Расчетные агрегаты Profit_avg (прибыль среднее), Profit_avg_cust (прибыль среднее по клиенту) и Profit_avg_ord (прибыль среднее по заказу) определены как Агрегаты.

AVG_IF (оконная)

#оконная

Позволяет рассчитать среднее значение для данных из строк выборки (окна), которые подходят под условие.

Возвращает среднее значение для выражения expression, которые удовлетворяют условию condition с учетом группировки. Если значения отсутствуют, то возвращается NULL.

AVG_IF  (
            expression, 
            condition 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное)

Похожие: AVG | AVG (оконная) | AVG_IF | MAVG | RAVG | MEDIAN

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить среднее значение прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу, при условии, что прибыль не отрицательная.

Формула:

AVG_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0    
            TOTAL
        )
AVG_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0 
            WITHIN [customer_id]
        ) 
AVG_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0 
            AMONG [customer_id]
        ) 

Результат:

AVG_IF_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

AVG_IF_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_avg (прибыль среднее), в Промежуточное значение указана формула AVG_IF (SUM ([orders_profit]) TOTAL)(1)
  1. ℹ функция суммирует все значения прибыли, а затем делит на общее количество значений, так как не используется группировка (TOTAL)

AVG_IF_w_step2

  • Profit_avg_cust (прибыль среднее по клиенту), в Промежуточное значение указана формула AVG_IF (SUM ([orders_profit]) WITHIN [customer_id])(1)
  1. ℹ функция суммирует значения прибыли по клиенту, так как используется группировка (WITHIN), а затем делит на количество записей по клиенту

AVG_IF_w_step2_1

  • Profit_avg_ord (прибыль среднее по заказу), в Промежуточное значение указана формула AVG_IF (SUM ([orders_profit]) AMONG [customer_id])(1)
  1. ℹ функция суммирует значения прибыли по заказу, так как используется группировка (AMONG) НЕ по клиенту, а затем делит на количество записей по заказу

AVG_IF_w_step2_2

4.Расчетные агрегаты Profit_avg (прибыль среднее), Profit_avg_cust (прибыль среднее по клиенту) и Profit_avg_ord (прибыль среднее по заказу) определены как Агрегаты.

COUNT (оконная)

#оконная

Позволяет рассчитать количество строк выборки (окна).

Возвращает количество элементов в заданном выражении expression с учетом группировки.

COUNT   (
            expression 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное), Строка, Дата, Логическое

Похожие: COUNT | COUNT_IF | COUNT_IF (оконная) | COUNTD | COUNTD_IF | COUNTD_APPROX | MCOUNT | RCOUNT

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить количество результатов расчета среднего значения прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу.

Формула:

COUNT   (
            AVG (
                    [orders_profit]
                )   
            TOTAL
        )
COUNT   (
            AVG (
                    [orders_profit]
                )
            WITHIN [customer_id]
        ) 
COUNT   (
            AVG (
                    [orders_profit]
                )
            AMONG [customer_id]
        ) 

Результат:

COUNT_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

COUNT_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_count (количество среднее), в Промежуточное значение указана формула COUNT (AVG ([orders_profit]) TOTAL)(1)
  1. ℹ функция отображает количество записей, участвующих в расчёте среднего значения прибыли по всем записям, так как не используется группировка (TOTAL)

COUNT_w_step2

  • Profit_count_cust (количество среднее по клиенту), в Промежуточное значение указана формула COUNT (AVG ([orders_profit]) WITHIN [customer_id])(1)
  1. ℹ функция отображает количество записей, участвующих в расчёте среднего значения прибыли по клиенту, так как используется группировка (WITHIN)

COUNT_w_step2_1

  • Profit_count_ord (количество среднее по заказу), в Промежуточное значение указана формула COUNT (AVG ([orders_profit]) AMONG [customer_id])(1)
  1. ℹ функция отображает количество записей, участвующих в расчёте среднего значения прибыли по заказу, так как используется группировка (AMONG) НЕ по клиенту

COUNT_w_step2_2

4.Расчетные агрегаты Profit_count (количество среднее), Profit_count_cust (количество среднее по клиенту) и Profit_count_ord (количество среднее по заказу) определены как Агрегаты.

COUNT_IF (оконная)

#оконная

Позволяет рассчитать количество строк выборки (окна), которые подходят под условие.

Возвращает количество элементов в выражении expression, которые удовлетворяют условию condition с учетом группировки.

COUNT_IF    (
                expression, 
                condition 
                TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное), Строка, Дата, Логическое

Похожие: COUNT | COUNT (оконная) | COUNT_IF | COUNTD | COUNTD_IF | COUNTD_APPROX | MCOUNT | RCOUNT

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить количество результатов расчета среднего значения прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу, при условии, что прибыль не отрицательная.

Формула:

COUNT_IF    (
                AVG (
                        [orders_profit]
                    ),
                [orders_profit] > 0   
                TOTAL
            )
COUNT_IF    (
                AVG (
                        [orders_profit]
                    ),
                [orders_profit] > 0
                WITHIN [customer_id]
            ) 
COUNT_IF    (
                AVG (
                        [orders_profit]
                    ),
                [orders_profit] > 0
                AMONG [customer_id]
            ) 

Результат:

COUNT_IF_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

COUNT_IF_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_count (количество среднее), в Промежуточное значение указана формула COUNT_IF (AVG ([orders_profit]), [orders_profit] > 0 TOTAL)(1)
  1. ℹ функция отображает количество записей, участвующих в расчёте среднего значения прибыли по всем записям, где прибыль положительная, так как не используется группировка (TOTAL) и применяется условие >0

COUNT_IF_w_step2

  • Profit_count_cust (количество среднее по клиенту), в Промежуточное значение указана формула COUNT_IF (AVG ([orders_profit]), [orders_profit] > 0 WITHIN [customer_id])(1)
  1. ℹ функция отображает количество записей, где прибыль положительная, участвующих в расчёте среднего значения прибыли по клиенту, так как используется группировка (WITHIN) и применяется условие >0

COUNT_IF_w_step2_1

  • Profit_count_ord (количество среднее по заказу), в Промежуточное значение указана формула COUNT_IF (AVG ([orders_profit]), [orders_profit] > 0 AMONG [customer_id])(1)
  1. ℹ функция отображает количество записей, где прибыль положительная, участвующих в расчёте среднего значения прибыли по заказу, так как используется группировка (AMONG) НЕ по клиенту и применяется условие >0

COUNT_IF_w_step2_2

4.Расчетные агрегаты Profit_count (количество среднее), Profit_count_cust (количество среднее по клиенту) и Profit_count_ord (количество среднее по заказу) определены как Агрегаты.

FIRST

#оконная

Позволяет отобразить первое значение выборки (окна).

Возвращает значение из первой строки выражения expression с учетом группировки и сортировки.

FIRST   (
            expression 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное), Строка, Дата, Логическое

Похожие: LAG | LAST

Исходные данные: Доступны данные по датам заказов, клиентам и прибыли по заказам.

Цель: Отобразить суммарную прибыль по всем заказам и сумму прибыли по заказам клиента.

Формула:

FIRST   (
            SUM (
                    [orders_profit]
                )   
            TOTAL
            ORDER BY [order_date] ASC
        )
FIRST   (
            SUM (
                    [orders_profit]
                )
            WITHIN [customer_id]
            ORDER BY [order_date] ASC
        ) 

Результат:

FIRST

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_date (дата заказа) и Orders_profit (прибыль) определены как Группы.

FIRST_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (сумма прибыли), в Промежуточное значение указана формула FIRST (SUM ([orders_profit]) TOTAL ORDER BY [order_date] ASC)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL) и выбирает сумму по самой ранней дате заказа

FIRST_step2

  • Profit_sum_cust (сумма прибыли по клиенту), в Промежуточное значение указана формула FIRST (SUM ([orders_profit]) WITHIN [customer_id] ORDER BY [order_date] ASC)(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN), сортирует по дате и отображает первое значение по самой ранней дате заказа

FIRST_step2_1

4.Расчетные агрегаты Profit_sum (сумма прибыли), Profit_sum_cust (сумма прибыли по клиенту) и определены как Агрегаты.

LAG

#оконная

Позволяет отобразить значение из заданной строки выборки (окна).

Возвращает значение expression из выражения со смещением offset(1)(по умолчанию 1 - предыдущее значение) с учетом группировки. При отсутствии значения возвращает NULL или default, если задано.

  1. ℹ положительное (N) - значение в предыдущей N строке или N строк назад
    отрицательное (-N) - значение в следующей N строке или N строк вперед
LAG (
        expression, 
        offset,
        default
        TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
        ORDER BY field_1, ..., field_N
    )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression и default: Число (целое), Число (дробное), Строка, Дата, Логическое

Тип данных offset: Число (целое)

Похожие: FIRST | LAST

Исходные данные: Доступны данные по датам заказов, клиентам и прибыли по заказам.

Цель: Отобразить итоговую прибыль предыдущего заказа для всех заказов и прибыль предыдущего заказа по клиенты.

Формула:

LAG (
        SUM (
                [orders_profit]
            ),
        1,
        0      
        TOTAL
        ORDER BY [order_date] ASC
    )
LAG (
        SUM (
                [orders_profit]
            ),
        1,
        0   
        WITHIN [customer_id]
        ORDER BY [order_date] ASC
    ) 

Результат:

LAG

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_date (дата заказа) и Orders_profit (прибыль) определены как Группы.

LAG_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (сумма прибыли), в Промежуточное значение указана формула LAG (SUM ([orders_profit]), 1, 0 TOTAL ORDER BY [order_date] ASC)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL) и выбирает сумму предыдущего по дате заказа

LAG_step2

  • Profit_sum_cust (сумма прибыли по клиенту), в Промежуточное значение указана формула LAG (SUM ([orders_profit]), 1, 0 WITHIN [customer_id] ORDER BY [order_date] ASC)(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN) и выбирает сумму предыдущего по дате заказа клиента

LAG_step2_1

4.Расчетные агрегаты Profit_sum (сумма прибыли), Profit_sum_cust (сумма прибыли по клиенту) и определены как Агрегаты.

LAST

#оконная

Позволяет отобразить последнее значение выборки (окна).

Возвращает значение из последней строки выражения expression с учетом группировки.

LAST    (
            expression 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное), Строка, Дата, Логическое

Похожие: FIRST | LAG

Исходные данные: Доступны данные по датам заказов, клиентам и прибыли по заказам.

Цель: Отобразить последнее значение результатов расчета суммы прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу.

Формула:

LAST    (
            SUM (
                    [orders_profit]
                )   
            TOTAL
            ORDER BY [order_date] ASC
        )
LAST    (
            SUM (
                    [orders_profit]
                )
            WITHIN [customer_id]
            ORDER BY [order_date] ASC
        ) 

Результат:

LAST

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_date (дата заказа) и Orders_profit (прибыль) определены как Группы.

LAST_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (прибыль сумма), в Промежуточное значение указана формула LAST (SUM ([orders_profit]) TOTAL ORDER BY [order_date] ASC)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL) и выбирает сумму по самой поздней дате заказа

LAST_step2

  • Profit_sum_cust (прибыль сумма по клиенту), в Промежуточное значение указана формула LAST (SUM ([orders_profit]) WITHIN [customer_id] ORDER BY [order_date] ASC)(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN) и выбирает сумму по самой поздней дате заказа клиента

LAST_step2_1

4.Расчетные агрегаты Profit_sum (прибыль сумма), Profit_sum_cust (прибыль сумма по клиенту) и Profit_sum_ord (прибыль сумма по заказу) определены как Агрегаты.

MAVG

#оконная

Позволяет рассчитать скользящее среднее значение выборки (окна). На расчеты влияет порядок сортировки.

Возвращает скользящее среднее значение для expression текущей записи и rows_1 предшествующих (либо последующих при отрицательном значении), rows_2 последующих записей с учетом группировки и сортировки. Параметр rows_2 используется, когда необходимо захватить для расчета как предыдущие так и последующие записи.

MAVG    (
            expression,
            rows_1,
            rows_2 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное)

Тип данных rows_1 и rows_2: Число (целое)

Похожие: AVG | AVG (оконная) | AVG_IF | AVG_IF (оконная) | RAVG | MEDIAN

Исходные данные: Доступны данные по датам заказа и прибыли по заказам.

Цель: Отобразить скользящее среднее прибыли для заказа и двух предыдущих.

Формула:

MAVG    (
            SUM (
                    [orders_profit]
                ),
            2,
            0 
            TOTAL
            ORDER BY [order_date] ASC
        )

Результат:

MAVG

Подробнее

1.В виджете на вкладке Данные поле Order_date (дата заказа) определено как Группы, поле Profit_sum (сумма прибыли за месяц) определено как Столбцы.

MAVG_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_mavg (прибыль среднее), в Промежуточное значение указана формула MAVG (SUM ([orders_profit]), 2, 0 TOTAL ORDER BY [order_date] ASC)(1)

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

MAVG_step2

3.Расчетный агрегат Profit_mavg (прибыль среднее) определен как Столбцы.

MAX (оконная)

#оконная

Позволяет рассчитать максимальное значение выборки (окна).

Возвращает максимальное значение для expression с учетом группировки.

Возвращаемые значения для типов данных
Тип данных Результат
Дата/ Дата и время поздняя из дат и позднее из времени
Число (дробное) наибольшее число
Число (целое) наибольшее число
Строка последнюю строку в алфавитном порядке
Логическое TRUE
MAX (
        expression
        TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N 
    )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное), Дата, Строка, Логическое

Похожие: ARG_MAX | GREATEST | MAX | MAX_IF | MAX_IF (оконная) | MMAX | RMAX

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить максимальное значение результатов расчета суммы прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу.

Формула:

MAX    (
            SUM (
                    [orders_profit]
                )   
            TOTAL
        )
MAX    (
            SUM (
                    [orders_profit]
                )
            WITHIN [customer_id]
        ) 
MAX    (
            SUM (
                    [orders_profit]
                )
            AMONG [customer_id]
        ) 

Результат:

MAX_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

MAX_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (прибыль сумма), в Промежуточное значение указана формула MAX (SUM ([orders_profit]) TOTAL)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL), а затем выводит максимальное значение

MAX_w_step2

  • Profit_sum_cust (прибыль сумма по клиенту), в Промежуточное значение указана формула MAX (SUM ([orders_profit]) WITHIN [customer_id])(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN), а затем выводит максимальное значение

MAX_w_step2_1

  • Profit_sum_ord (прибыль сумма по заказу), в Промежуточное значение указана формула MAX (SUM ([orders_profit]) AMONG [customer_id])(1)
  1. ℹ функция суммирует прибыль по заказу, так как используется группировка (AMONG) НЕ по клиенту, а затем выводит максимальное значение

MAX_w_step2_2

4.Расчетные агрегаты Profit_sum (прибыль сумма), Profit_sum_cust (прибыль сумма по клиенту) и Profit_sum_ord (прибыль сумма по заказу) определены как Агрегаты.

MAX_IF (оконная)

#оконная

Позволяет рассчитать максимальное значение выборки (окна), которые подходят под условие.

Возвращает максимальное значение для expression, которые удовлетворяют условию condition с учетом группировки.

Возвращаемые значения для типов данных
Тип данных Результат
Дата/ Дата и время поздняя из дат и позднее из времени
Число (дробное) наибольшее число
Число (целое) наибольшее число
Строка последнюю строку в алфавитном порядке
Логическое TRUE
MAX_IF  (
            expression, 
            condition
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N 
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное), Дата, Строка, Логическое

Похожие: ARG_MAX | GREATEST | MAX | MAX (оконная) | MAX_IF | MMAX | RMAX

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить максимальное значение результатов расчета суммы прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу, при условии, что прибыль не отрицательная.

Формула:

MAX_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0   
            TOTAL
        )
MAX_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0
            WITHIN [customer_id]
        ) 
MAX_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0
            AMONG [customer_id]
        ) 

Результат:

MAX_IF_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

MAX_IF_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (прибыль сумма), в Промежуточное значение указана формула MAX_IF (SUM ([orders_profit]), [orders_profit] > 0 TOTAL)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL), а затем выводит максимальное значение

MAX_IF_w_step2

  • Profit_sum_cust (прибыль сумма по клиенту), в Промежуточное значение указана формула MAX_IF (SUM ([orders_profit]), [orders_profit] > 0 WITHIN [customer_id])(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN), а затем выводит максимальное значение

MAX_IF_w_step2_1

  • Profit_sum_ord (прибыль сумма по заказу), в Промежуточное значение указана формула MAX_IF (SUM ([orders_profit]), [orders_profit] > 0 AMONG [customer_id])(1)
  1. ℹ функция суммирует прибыль по заказу, так как используется группировка (AMONG) НЕ по клиенту, а затем выводит максимальное значение

MAX_IF_w_step2_2

4.Расчетные агрегаты Profit_sum (прибыль сумма), Profit_sum_cust (прибыль сумма по клиенту) и Profit_sum_ord (прибыль сумма по заказу) определены как Агрегаты.

MCOUNT

#оконная

Позволяет рассчитать количество значений выборки (окна). На расчеты влияет порядок сортировки.

Возвращает количество значений не равных NULL для expression текущей записи и rows_1 предшествующих (либо последующих при отрицательном значении), rows_2 последующих записей с учетом группировки и сортировки. Параметр rows_2 используется, когда необходимо захватить для расчета как предыдущие так и последующие записи.

MCOUNT  (
            expression,
            rows_1,
            rows_2 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное), Дата, Строка, Логическое

Тип данных rows_1 и rows_2: Число (целое)

Похожие: COUNT | COUNT (оконная) | COUNT_IF | COUNT_IF (оконная) | COUNTD | COUNTD_IF | COUNTD_APPROX | RCOUNT

Исходные данные: Доступны данные по датам заказов, заказам и клиентам.

Цель: Отобразить количество заказов в последних 3 строках по всему набору и по клиенту.

Формула:

MCOUNT  (
            SUM (
                    [orders]
                ),
            2,
            0   
            TOTAL
            ORDER BY [order_date] DESC
        )
MCOUNT   (
            SUM (
                    [orders]
                ),
            2,
            0 
            WITHIN [customer_id]
            ORDER BY [order_date] DESC
        ) 

Результат:

MCOUNT

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Orders (заказ) и Order_date (дата заказа) определены как Группы.

MCOUNT_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Count (количество), в Промежуточное значение указана формула MCOUNT (SUM ([orders]), 2, 0 TOTAL ORDER BY [order_date] DESC)(1)
  1. ℹ функция отображает количество записей для текущей даты и двух предыдущих по всем записям, так как не используется группировка (TOTAL)

MCOUNT_step2

  • Count_cust (количество по клиенту), в Промежуточное значение указана формула `MCOUNT (SUM ([orders]), 2, 0 WITHIN [customer_id] ORDER BY [order_date] DESC)(1)
  1. ℹ функция отображает количество записей для текущей даты заказа клиента и двух предыдущих по клиенту, так как используется группировка (WITHIN)

MCOUNT_step2_1

4.Расчетные агрегаты Count (количество), Count_cust (количество по клиенту) определены как Агрегаты.

MIN (оконная)

#оконная

Позволяет рассчитать минимальное значение выборки (окна).

Возвращает минимальное значение для expression с учетом группировки.

Возвращаемые значения для типов данных
Тип данных Результат
Дата/ Дата и время ранняя из дат и раннее из времени
Число (дробное) наименьшее число
Число (целое) наименьшее число
Строка первую строку в алфавитном порядке
Логическое FALSE
MIN (
        expression
        TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N 
    )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное), Дата, Строка, Логическое

Похожие: ARG_MIN | LEAST | MIN | MIN_IF | MIN_IF (оконная) | MMIN | RMIN

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить минимальное значение результатов расчета суммы прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу.

Формула:

MIN    (
            SUM (
                    [orders_profit]
                )   
            TOTAL
        )
MIN    (
            SUM (
                    [orders_profit]
                )
            WITHIN [customer_id]
        ) 
MIN    (
            SUM (
                    [orders_profit]
                )
            AMONG [customer_id]
        ) 

Результат:

MIN_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

MIN_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (прибыль сумма), в Промежуточное значение указана формула MIN (SUM ([orders_profit]) TOTAL)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL), а затем выводит минимальное значение

MIN_w_step2

  • Profit_sum_cust (прибыль сумма по клиенту), в Промежуточное значение указана формула MIN (SUM ([orders_profit]) WITHIN [customer_id])(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN), а затем выводит минимальное значение

MIN_w_step2_1

  • Profit_sum_ord (прибыль сумма по заказу), в Промежуточное значение указана формула MIN (SUM ([orders_profit]) AMONG [customer_id])(1)
  1. ℹ функция суммирует прибыль по заказу, так как используется группировка (AMONG) НЕ по клиенту, а затем выводит минимальное значение

MIN_w_step2_2

4.Расчетные агрегаты Profit_sum (прибыль сумма), Profit_sum_cust (прибыль сумма по клиенту) и Profit_sum_ord (прибыль сумма по заказу) определены как Агрегаты.

MIN_IF (оконная)

#оконная

Позволяет рассчитать минимальное значение выборки (окна), которые подходят под условие.

Возвращает минимальное значение для expression, которые удовлетворяют условию condition с учетом группировки.

Возвращаемые значения для типов данных
Тип данных Результат
Дата/ Дата и время ранняя из дат и раннее из времени
Число (дробное) наименьшее число
Число (целое) наименьшее число
Строка первую строку в алфавитном порядке
Логическое FALSE
MIN_IF  (
            expression, 
            condition
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N 
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное), Дата, Строка, Логическое

Похожие: ARG_MIN | LEAST | MIN | MIN (оконная) | MIN_IF | MMIN | RMIN

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить минимальное значение результатов расчета суммы прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу, при условии, что прибыль не отрицательная.

Формула:

MIN_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0   
            TOTAL
        )
MIN_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0
            WITHIN [customer_id]
        ) 
MIN_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0
            AMONG [customer_id]
        ) 

Результат:

MIN_IF_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

MIN_IF_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (прибыль сумма), в Промежуточное значение указана формула MIN_IF (SUM ([orders_profit]), [orders_profit] > 0 TOTAL)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL), а затем выводит минимальное значение

MIN_IF_w_step2

  • Profit_sum_cust (прибыль сумма по клиенту), в Промежуточное значение указана формула MIN_IF (SUM ([orders_profit]), [orders_profit] > 0 WITHIN [customer_id])(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN), а затем выводит минимальное значение

MIN_IF_w_step2_1

  • Profit_sum_ord (прибыль сумма по заказу), в Промежуточное значение указана формула MIN_IF (SUM ([orders_profit]), [orders_profit] > 0 AMONG [customer_id])(1)
  1. ℹ функция суммирует прибыль по заказу, так как используется группировка (AMONG) НЕ по клиенту, а затем выводит минимальное значение

MIN_IF_w_step2_2

4.Расчетные агрегаты Profit_sum (прибыль сумма), Profit_sum_cust (прибыль сумма по клиенту) и Profit_sum_ord (прибыль сумма по заказу) определены как Агрегаты.

MMAX

#оконная

Позволяет рассчитать скользящее максимальное значение выборки (окна). На расчеты влияет порядок сортировки.

Возвращает скользящее максимальное значение для expression текущей записи и rows_1 предшествующих (либо последующих при отрицательном значении), rows_2 последующих записей с учетом группировки и сортировки. Параметр rows_2 используется, когда необходимо захватить для расчета как предыдущие так и последующие записи.

MMAX    (
            expression,
            rows_1,
            rows_2 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное)

Тип данных rows_1 и rows_2: Число (целое)

Похожие: ARG_MAX | GREATEST | MAX | MAX (оконная) | MAX_IF | MAX_IF (оконная) | RMAX

Исходные данные: Доступны данные по датам заказа и прибыли по заказам.

Цель: Отобразить максимальную прибыль для месяца и двух предыдущих.

Формула:

MMAX    (
            SUM (
                    [orders_profit]
                ),
            2 
            TOTAL
        )

Результат:

MMAX

Подробнее

1.В виджете на вкладке Данные поле Month_orders (месяц заказа) определено как Группы, поле Profit_sum (сумма прибыли за месяц) определено как Столбцы.

MMAX_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_max_3m (прибыль макс. за 3мес), в Промежуточное значение указана формула MMAX (SUM ([orders_profit]), 2 TOTAL)(1)

  1. ℹ функция суммирует прибыль по текущему месяцу, так как не используется группировка (TOTAL), а затем рассчитывает максимальное с учетом значения для двух предыдущих месяцев

MMAX_step2

3.Расчетный агрегат Profit_max_3m (прибыль макс. за 3мес) определен как Столбцы.

MMIN

#оконная

Позволяет рассчитать скользящее минимальное значение выборки (окна). На расчеты влияет порядок сортировки.

Возвращает скользящее минимальное значение для expression текущей записи и rows_1 предшествующих (либо последующих при отрицательном значении), rows_2 последующих записей с учетом группировки и сортировки. Параметр rows_2 используется, когда необходимо захватить для расчета как предыдущие так и последующие записи.

MMIN    (
            expression,
            rows_1,
            rows_2 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное)

Тип данных rows_1 и rows_2: Число (целое)

Похожие: ARG_MIN | LEAST | MIN | MIN (оконная) | MIN_IF | MIN_IF (оконная) | RMIN

Исходные данные: Доступны данные по месяцам заказа и прибыли по заказам.

Цель: Отобразить скользящее минимальное значение прибыли для месяца и двух предыдущих.

Формула:

MMIN    (
            SUM (
                    [orders_profit]
                ),
            2 
            TOTAL
        )

Результат:

MMIN

Подробнее

1.В виджете на вкладке Данные поле Month_orders (месяц заказа) определено как Группы, поле Profit_sum (сумма прибыли за месяц) определено как Столбцы.

MMIN_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_min_3m (прибыль мин. за 3мес), в Промежуточное значение указана формула MMIN (SUM ([orders_profit]), 2 TOTAL)(1)

  1. ℹ функция суммирует прибыль по текущему месяцу, так как не используется группировка (TOTAL), а затем рассчитывает минимальное с учетом значения для двух предыдущих месяцев

MMIN_step2

3.Расчетный агрегат Profit_min_3m (прибыль мин. за 3мес) определен как Столбцы.

MSUM

#оконная

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

Возвращает скользящее значение суммы для expression текущей записи и rows_1 предшествующих (либо последующих при отрицательном значении), rows_2 последующих записей с учетом группировки и сортировки. Параметр rows_2 используется, когда необходимо захватить для расчета как предыдущие так и последующие записи.

MSUM    (
            expression,
            rows_1,
            rows_2 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное)

Тип данных rows_1 и rows_2: Число (целое)

Похожие: RSUM | SUM | SUM (оконная) | SUM_IF | SUM_IF (оконная)

Исходные данные: Доступны данные по месяцам заказа и прибыли по заказам.

Цель: Отобразить скользящее значение суммы прибыли для месяца и двух предыдущих.

Формула:

MSUM    (
            SUM (
                    [orders_profit]
                ),
            2 
            TOTAL
        )

Результат:

MSUM

Подробнее

1.В виджете на вкладке Данные поле Month_orders (месяц заказа) определено как Группы, поле Profit_sum (сумма прибыли за месяц) определено как Столбцы.

MSUM_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_sum_3m (прибыль сумма за 3мес), в Промежуточное значение указана формула MSUM (SUM ([orders_profit]), 2 TOTAL)(1)

  1. ℹ функция суммирует прибыль по текущему месяцу, так как не используется группировка (TOTAL), а затем рассчитывает сумму с учетом значения для двух предыдущих месяцев

MSUM_step2

3.Расчетный агрегат Profit_sum_3m (прибыль сумма за 3мес) определен как Столбцы.

RANK

#оконная

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

Возвращает порядковый номер expression после сортировки по direction с учетом группировки. При пустом параметре direction по умолчанию применяется значение 'desc' - от большего к меньшему, указав значение 'asc' применится от меньшего к большему.

Для строк выборки с одинаковыми значениями присваивается одинаковый ранг, а следующей строке с отличным значением присваивается ранг с учетом повторов. Например, 1 и 2 строка - ранг 1, 3 строка - ранг 3.

RANK    (
            expression, 
            direction
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N 
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное), Дата, Строка, Логическое

Тип данных direction: Строка

Похожие: RANK_DENSE

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Ранжировать от меньшего к большему результаты расчета суммы прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу.

Формула:

RANK  (
            SUM (
                    [orders_profit]
                ),
            'asc'  
            TOTAL
        )
RANK  (
            SUM (
                    [orders_profit]
                ),
            'asc'
            WITHIN [customer_id]
        ) 
RANK  (
            SUM (
                    [orders_profit]
                ),
            'asc'
            AMONG [customer_id]
        ) 

Результат:

RANK

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

RANK_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum_rang (прибыль сумма ранг), в Промежуточное значение указана формула RANK (SUM ([orders_profit]), 'asc' TOTAL)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL), а затем ранжирует значения от меньшего к большему

RANK_step2

  • Profit_sum_rang_cust (прибыль сумма ранг по клиенту), в Промежуточное значение указана формула RANK (SUM ([orders_profit]), 'asc' WITHIN [customer_id])(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN), а затем ранжирует значения от меньшего к большему

RANK_step2_1

  • Profit_sum_rang_ord (прибыль сумма ранг по заказу), в Промежуточное значение указана формула RANK (SUM ([orders_profit]), 'asc' AMONG [customer_id])(1)
  1. ℹ функция суммирует прибыль по заказу, так как используется группировка (AMONG) НЕ по клиенту, а затем ранжирует значения от меньшего к большему

RANK_step2_2

4.Расчетные агрегаты Profit_sum_rang (прибыль сумма ранг), Profit_sum_rang_cust (прибыль сумма ранг по клиенту) и Profit_sum_rang_ord (прибыль сумма ранг по заказу) определены как Агрегаты.

RANK_DENSE

#оконная

Позволяет ранжировать значения выборки (окна). Присваивает одинаковым значениям один ранг, сохраняя последовательность нумерации.

Возвращает порядковый номер expression после сортировки по direction с учетом группировки. При пустом параметре direction по умолчанию применяется значение 'desc' - от большего к меньшему, указав значение 'asc' применится от меньшего к большему.

Для строк выборки с одинаковыми значениями присваивается одинаковый ранг, следующей строке с отличным значениям присваивается следующий по-порядку ранг. Например, 1 и 2 строка - ранг 1, 3 строка - ранг 2.

RANK_DENSE  (
                expression, 
                direction
                TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N 
            )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное), Дата, Строка, Логическое

Тип данных direction: Строка

Похожие: RANK

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Ранжировать от меньшего к большему результаты расчета суммы прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу.

Формула:

RANK_DENSE  (
                SUM (
                        [orders_profit]
                    ),
                'asc'  
                TOTAL
            )
RANK_DENSE  (
                SUM (
                        [orders_profit]
                    ),
                'asc'
                WITHIN [customer_id]
            ) 
RANK_DENSE  (
                SUM (
                        [orders_profit]
                    ),
                'asc'
                AMONG [customer_id]
            ) 

Результат:

RANK_DENSE

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

RANK_DENSE_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum_rang (прибыль сумма ранг), в Промежуточное значение указана формула RANK_DENSE (SUM ([orders_profit]), 'asc' TOTAL)(1)
  1. ℹ функция суммирует прибыль по всем записям, так как не используется группировка (TOTAL), а затем ранжирует значения от меньшего к большему

RANK_DENSE_step2

  • Profit_sum_rang_cust (прибыль сумма ранг по клиенту), в Промежуточное значение указана формула RANK_DENSE (SUM ([orders_profit]), 'asc' WITHIN [customer_id])(1)
  1. ℹ функция суммирует прибыль по клиенту, так как используется группировка (WITHIN), а затем ранжирует значения от меньшего к большему

RANK_DENSE_step2_1

  • Profit_sum_rang_ord (прибыль сумма ранг по заказу), в Промежуточное значение указана формула RANK_DENSE (SUM ([orders_profit]), 'asc' AMONG [customer_id])(1)
  1. ℹ функция суммирует прибыль по заказу, так как используется группировка (AMONG) НЕ по клиенту, а затем ранжирует значения от меньшего к большему

RANK_DENSE_step2_2

4.Расчетные агрегаты Profit_sum_rang (прибыль сумма ранг), Profit_sum_rang_cust (прибыль сумма ранг по клиенту) и Profit_sum_rang_ord (прибыль сумма ранг по заказу) определены как Агрегаты.

RAVG

#оконная

Позволяет рассчитать среднее значение обозначенной части выборки (окна).

Возвращает среднее значение для expression текущей записи и части выборки direction с учетом группировки. Параметр direction в значении 'asc' (по умолчанию) ограничивает выборку от первой до текущей записи, в значении 'desc' - от текущей до последней.

RAVG    (
            expression,
            direction
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное)

Тип данных direction: Строка

Похожие: AVG | AVG (оконная) | AVG_IF | AVG_IF (оконная) | MAVG | MEDIAN

Исходные данные: Доступны данные по датам заказа и прибыли по заказам.

Цель: Отобразить нарастающее среднее прибыли.

Формула:

RAVG    (
            SUM (
                    [orders_profit]
                )
            TOTAL
            ORDER BY [order_date]
        )

Результат:

RAVG

Подробнее

1.В виджете на вкладке Данные поле Order_date (дата заказа) определено как Группы, поле Orders_profit (прибыль) определено как Столбцы.

RAVG_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_avg (прибыль среднее), в Промежуточное значение указана формула RAVG (SUM ([orders_profit]) ORDER BY [order_date])(1)

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

RAVG_step2

3.Расчетный агрегат Profit_avg (прибыль среднее) определен как Столбцы.

RCOUNT

#оконная

Позволяет рассчитать количество строк в обозначенной части выборки (окна).

Возвращает количество элементов в expression текущей записи и части выборки direction с учетом группировки. Параметр direction в значении 'asc' (по умолчанию) ограничивает выборку от первой до текущей записи, в значении 'desc' - от текущей до последней.

RCOUNT  (
            expression,
            direction
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное), Строка, Дата, Логическое

Тип данных direction: Строка

Похожие: COUNT | COUNT (оконная) | COUNT_IF | COUNT_IF (оконная) | COUNTD | COUNTD_IF | COUNTD_APPROX | MCOUNT

Исходные данные: Доступны данные по датам заказа и прибыли по заказам.

Цель: Отобразить нарастающее количество строк для расчета суммы прибыли.

Формула:

RCOUNT  (
            SUM (
                    [orders_profit]
                )
            TOTAL
            ORDER BY [order_date]
        )

Результат:

RCOUNT

Подробнее

1.В виджете на вкладке Данные поле Order_date (дата заказа) определено как Группы, поле Orders_profit (прибыль) определено как Столбцы.

RCOUNT_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_count (количество), в Промежуточное значение указана формула RCOUNT (SUM ([orders_profit]) TOTAL ORDER BY [order_date])(1)

  1. ℹ функция суммирует количество строк по датам по возрастанию, так как не используется группировка (TOTAL)

RCOUNT_step2

3.Расчетный агрегат Profit_count (количество) определен как Столбцы.

RMAX

#оконная

Позволяет рассчитать максимальное значение в обозначенной части выборки (окна).

Возвращает максимальное значение в expression текущей записи и части выборки direction с учетом группировки. Параметр direction в значении 'asc' (по умолчанию) ограничивает выборку от первой до текущей записи, в значении 'desc' - от текущей до последней.

Возвращаемые значения для типов данных
Тип данных Результат
Дата/ Дата и время поздняя из дат и позднее из времени
Число (дробное) наибольшее число
Число (целое) наибольшее число
Строка последнюю строку в алфавитном порядке
Логическое TRUE
RMAX  (
            expression,
            direction
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное), Строка, Дата, Логическое

Тип данных direction: Строка

Похожие: ARG_MAX | GREATEST | MAX | MAX (оконная) | MAX_IF | MAX_IF (оконная) | MMAX

Исходные данные: Доступны данные по датам заказа и прибыли по заказам.

Цель: Отобразить нарастающий максимум суммы прибыли.

Формула:

RMAX  (
            SUM (
                    [orders_profit]
                )
            TOTAL
            ORDER BY [order_date]
        )

Результат:

RMAX

Подробнее

1.В виджете на вкладке Данные поле Order_date (дата заказа) определено как Группы, поле Orders_profit (прибыль) определено как Столбцы.

RMAX_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_max (прибыль макс.), в Промежуточное значение указана формула RMAX (SUM ([orders_profit]) TOTAL ORDER BY [order_date])(1)

  1. ℹ функция суммирует прибыль по датам последовательно по возрастанию и определяет максимум

RMAX_step2

3.Расчетный агрегат Profit_max (прибыль макс.) определен как Столбцы.

RMIN

#оконная

Позволяет рассчитать минимальное значение в обозначенной части выборки (окна).

Возвращает минимальное значение в expression текущей записи и части выборки direction с учетом группировки. Параметр direction в значении 'asc' (по умолчанию) ограничивает выборку от первой до текущей записи, в значении 'desc' - от текущей до последней.

Возвращаемые значения для типов данных
Тип данных Результат
Дата/ Дата и время ранняя из дат и раннее из времени
Число (дробное) наименьшее число
Число (целое) наименьшее число
Строка первую строку в алфавитном порядке
Логическое FALSE
RMIN  (
            expression,
            direction
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное), Строка, Дата, Логическое

Тип данных direction: Строка

Похожие: ARG_MIN | LEAST | MIN | MIN (оконная) | MIN_IF | MIN_IF (оконная) | MMIN

Исходные данные: Доступны данные по датам заказа и прибыли по заказам.

Цель: Отобразить нарастающий минимум суммы прибыли.

Формула:

RMIN  (
            SUM (
                    [orders_profit]
                )
            TOTAL
            ORDER BY [order_date]
        )

Результат:

RMIN

Подробнее

1.В виджете на вкладке Данные поле Order_date (дата заказа) определено как Группы, поле Orders_profit (прибыль) определено как Столбцы.

RMIN_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_min (прибыль мин.), в Промежуточное значение указана формула RMIN (SUM ([orders_profit]) TOTAL ORDER BY [order_date])(1)

  1. ℹ функция суммирует прибыль по датам последовательно по возрастанию и определяет минимум

RMIN_step2

3.Расчетный агрегат Profit_min (прибыль мин.) определен как Столбцы.

RSUM

#оконная

Позволяет рассчитать сумму значений в обозначенной части выборки (окна).

Возвращает сумму значений expression текущей записи и части выборки direction с учетом группировки. Параметр direction в значении 'asc' (по умолчанию) ограничивает выборку от первой до текущей записи, в значении 'desc' - от текущей до последней.

RSUM  (
            expression,
            direction
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
            ORDER BY field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

При вызове функции доступно применение сортировки ORDER BY после группировки. Сортировка по полям применяется для расчетов и важна для функций, в которых расчеты явно зависят от порядка сортировки. Для указания направления сортировки применяются:

  • ASC - по возрастанию, используется по умолчанию;
  • DESC - по убыванию.

Итоговая сортировка полей виджета зависит от сортировки для групп, скрытых полей и агрегатов.

Тип данных expression: Число (целое), Число (дробное)

Тип данных direction: Строка

Похожие: MSUM | SUM | SUM (оконная) | SUM_IF | SUM_IF (оконная)

Исходные данные: Доступны данные по датам заказа и прибыли по заказам.

Цель: Отобразить нарастающую сумму прибыли.

Формула:

RSUM  (
            SUM (
                    [orders_profit]
                )
            TOTAL
            ORDER BY [order_date]
        )

Результат:

RSUM

Подробнее

1.В виджете на вкладке Данные поле Order_date (дата заказа) определено как Группы, поле Orders_profit (прибыль) определено как Столбцы.

RSUM_step1

2.В Расчетные агрегаты добавлен новый агрегат Profit_sum (прибыль сумма), в Промежуточное значение указана формула RSUM (SUM ([orders_profit]) TOTAL ORDER BY [order_date])(1)

  1. ℹ функция суммирует прибыль по всем датам в порядке возрастания

RSUM_step2

3.Расчетный агрегат Profit_sum (прибыль сумма) определен как Столбцы.

SUM (оконная)

#оконная

Позволяет рассчитать сумму значений для данных из строк выборки (окна).

Возвращает сумму значений выражения expression с учетом группировки.

SUM ( 
        expression 
        TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N 
    )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное)

Похожие: MSUM | RSUM | SUM | SUM_IF | SUM_IF (оконная)

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить суммарное значение прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу.

Формула:

SUM (
        SUM (
                [orders_profit]
            ) 
        TOTAL
    )
SUM (
        SUM (
                [orders_profit]
            ) 
        WITHIN [customer_id]
    ) 
SUM (
        SUM (
                [orders_profit]
            ) 
        AMONG [customer_id]
    ) 

Результат:

SUM_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

SUM_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (прибыль сумма), в Промежуточное значение указана формула SUM (SUM ([orders_profit]) TOTAL)(1)
  1. ℹ функция суммирует все значения прибыли, так как не используется группировка (TOTAL)

SUM_w_step2

  • Profit_sum_cust (прибыль сумма по клиенту), в Промежуточное значение указана формула SUM (SUM ([orders_profit]) WITHIN [customer_id])(1)
  1. ℹ функция суммирует значения прибыли по клиенту, так как используется группировка (WITHIN)

SUM_w_step2_1

  • Profit_sum_ord (прибыль сумма по заказу), в Промежуточное значение указана формула SUM (SUM ([orders_profit]) AMONG [customer_id])(1)
  1. ℹ функция суммирует значения прибыли по заказу, так как используется группировка (AMONG) НЕ по клиенту

SUM_w_step2_2

4.Расчетные агрегаты Profit_sum (прибыль сумма), Profit_sum_cust (прибыль сумма по клиенту) и Profit_sum_ord (прибыль сумма по заказу) определены как Агрегаты.

SUM_IF (оконная)

#оконная

Позволяет рассчитать сумму значений для данных из строк выборки (окна), которые подходят под условие.

Возвращает сумму значений для выражения expression, которые удовлетворяют условию condition с учетом группировки. Если значения отсутствуют, то возвращается NULL.

SUM_IF  (
            expression, 
            condition 
            TOTAL | WITHIN field_1, ..., field_N | AMONG field_1, ..., field_N
        )

При вызове функции применяется группировка:

  • WITHIN - используется группировка по указанным полям field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • AMONG - используется группировка по полям, кроме field_N. В field_N необходимо указывать данные - Группы в структуре виджета;
  • TOTAL - без группировки, для расчета используются все данные выборки.

Для виджетов вида Таблица и Сводная таблица поддерживается работа только с верхним(1) уровнем вложенности группировки в WITHIN или TOTAL без группировки. Группировка AMONG не применяется. В качестве expression оконная функция принимает только результат агрегации.

  1. ℹ при группировке по полям [A], [B] - [A] верхний уровень группировки

Тип данных expression: Число (целое), Число (дробное)

Похожие: MSUM | RSUM | SUM | SUM_IF | SUM (оконная)

Исходные данные: Доступны данные по заказам, клиентам и прибыли по заказам.

Цель: Отобразить суммарное значение прибыли по всем заказам, с группировкой по клиенту и группировкой по заказу, при условии, что прибыль не отрицательная.

Формула:

SUM_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0    
            TOTAL
        )
SUM_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0 
            WITHIN [customer_id]
        ) 
SUM_IF  (
            SUM (
                    [orders_profit]
                ),
            [orders_profit] > 0 
            AMONG [customer_id]
        ) 

Результат:

SUM_IF_w

Подробнее

1.В виджете на вкладке Вид выбрана таблица агрегатов.

2.На вкладке Данные поля Customer_id (клиент), Order_id (заказ) и Orders_profit (прибыль) определены как Группы.

SUM_IF_w_step1

3.В Расчетные агрегаты добавлены новые агрегаты:

  • Profit_sum (прибыль сумма), в Промежуточное значение указана формула SUM_IF (SUM ([orders_profit]), [orders_profit] > 0 TOTAL)(1)
  1. ℹ функция суммирует все значения прибыли, так как не используется группировка (TOTAL)

SUM_IF_w_step2

  • Profit_sum_cust (прибыль сумма по клиенту), в Промежуточное значение указана формула SUM_IF (SUM ([orders_profit]), [orders_profit] > 0 WITHIN [customer_id])(1)
  1. ℹ функция суммирует значения прибыли по клиенту, так как используется группировка (WITHIN)

SUM_IF_w_step2_1

  • Profit_sum_ord (прибыль сумма по заказу), в Промежуточное значение указана формула SUM_IF (SUM ([orders_profit]), [orders_profit] > 0 AMONG [customer_id])(1)
  1. ℹ функция суммирует значения прибыли по заказу, так как используется группировка (AMONG) НЕ по клиенту

SUM_IF_w_step2_2

4.Расчетные агрегаты Profit_sum (прибыль сумма), Profit_sum_cust (прибыль сумма по клиенту) и Profit_sum_ord (прибыль сумма по заказу) определены как Агрегаты.