Above — функция диаграммы
Функция Above() оценивает выражение в строке над текущей строкой в сегменте столбца в таблице. Строка, для которой выполняется вычисление, зависит от значения элемента offset, если таковой имеет место, по умолчанию принимается строка непосредственно над текущей строкой. Для диаграмм, за исключением таблиц, функция Above() используется для оценки строки над текущей строкой в эквиваленте прямой таблицы диаграммы.
Синтаксис:
Above([TOTAL] expr [ , offset [,count]])
Возвращаемые типы данных: двойное значение
Аргументы:
Аргумент | Описание |
---|---|
expr | Выражение или поле, содержащее данные для измерения. |
offset |
Если задать значение offsetn больше 0, можно будет переместить оценку выражения n по строкам выше текущей строки. Если задать смещение равным 0, оценка выражения будет выполнена в текущей строке. Если задать отрицательное число смещения, функция Above будет работать как функция Below с соответствующим положительным числом смещения. |
count |
Если задать для третьего аргумента count значение больше 1, функция вернет диапазон значений элемента count: по одному для каждой строки таблицы элемента count, считая вверх от исходной ячейки. В данной форме функция может использоваться в качестве аргумента для любой специальной функции интервала. Функции над выборкой |
TOTAL |
Если таблица имеет одно измерение, или если в качестве аргумента используется префикс TOTAL, текущий сегмент столбца всегда равен всему столбцу. |
В первой строке сегмента столбца возвращено значение NULL, так как над этой строкой нет других строк.
Ограничения:
-
Рекурсивные вызовы возвращают значение NULL.
-
Сортировка по значениям y на диаграммах или сортировка по столбцам выражений в таблицах не допускается, если в любом из выражений диаграммы используется эта функция диаграмм. Данные возможности сортировки автоматически отключаются. Когда используется эта функция диаграмм в визуализации или таблице, сортировка визуализации будет возвращена к сортировке на входе этой функции.
Примеры и результаты:
Пример 1:
На снимке таблицы, показанной в этом примере, визуализация таблицы создана из измерения Customer и мер: Sum(Sales) и Above(Sum(Sales)).
Столбец Above(Sum(Sales)) возвращает значение NULL для строки Customer, содержащей элемент Astrida, так как над этой строкой нет других строк. В результате для строки Betacab показано значение элемента Sum(Sales) для элемента Astrida, в результате для строки Canutility показано значение для элемента Sum(Sales) для строки Betacab и так далее.
Для столбца, помеченного как Sum(Sales)+Above(Sum(Sales)), в строке для элемента Betacab показан результат добавления значений Sum(Sales) в строки Betacab + Astrida (539+587). В результате для строки Betacab будет показан результат добавления значений Sum(Sales) в строки Canutility + Canutility (683+539).
Меры, помеченные как Above offset 3, созданные с помощью выражения Sum(Sales)+Above(Sum(Sales), 3), имеют аргумент offset, установленный на 3, и эффект выбора значения в строке на три строки выше текущей строки. Таким образом, добавляется значение Sum(Sales) для текущего элемента Customer к значению для элемента Customer на три строки выше. Значения, возвращенные для первых трех строк Customer, являются нулевыми.
В таблице также показаны более сложные меры: одна, созданная из элемента Sum(Sales)+Above(Sum(Sales)), а другая, помеченная как Higher?, созданная из элемента IF(Sum(Sales)>Above(Sum(Sales)), 'Higher').
Пример 2:
На снимках таблиц, показанных в этом примере, к визуализациям добавлено больше измерений: Month и Product. Для диаграмм с несколькими измерениями результаты выражений, содержащих функции Above, Below, Top и Bottom, зависят от порядка, в котором измерения столбцов сортируются Qlik Sense. Программа Qlik Sense оценивает функции на основе сегментов столбца, полученных из измерения, отсортированного последним. Контроль за порядком сортировки столбцов осуществляется на панели свойств под элементом Сортировка. Этот порядок не обязательно соответствует порядку отображения столбцов в таблице.
На следующем снимке визуализации таблицы для примера 2 последним отсортированным измерением является Month, поэтому функция Above выполняет оценку на основе месяцев. Существует серия результатов для каждого значения Product для каждого месяца (от Jan до Aug) — сегмент столбца. За этим сегментом следует серия для другого сегмента столбца: для каждого элемента Month для следующего элемента Product. Будет указан сегмент столбца для каждого значения Customer для каждого элемента Product.
Пример 3:
На снимке визуализации таблицы для примера 3 последним отсортированным измерением является Product. Это выполняется путем перемещения измерения Product в позицию 3 на вкладке «Сортировка» на панели свойств. Функция Above оценивается для каждого элемента Product, и поскольку существует только два продукта, AA и BB, в каждой серии будет выдан только один результат, не являющийся нулевым. В строке BB для месяца Jan значение для элемента Above(Sum(Sales)) равно 46. Для строки AA значение нулевое. Значение в каждой строке AA для любого месяца всегда будет нулевым, поскольку отсутствует значение элемента Product над строкой AA. Вторая серия оценивается в строках AA и BB для месяца Feb для значения Customer, Astrida. Если все месяцы для значения Astrida оценены, эта последовательность повторяется для второго значения CustomerBetacab и так далее.
Пример 4: |
Результат | ||||
---|---|---|---|---|---|
Функцию Above можно использовать как ввод в функции над выборкой. Например, элемент RangeAvg (Above(Sum(Sales),1,3)). |
|
Данные, используемые в примерах: