Top — функция диаграммы

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

Syntax:  

Top([TOTAL] expr [ , offset [,count ]])

Return data type: двойное значение

Arguments:  

Аргумент Описание
expr Выражение или поле, содержащее данные для измерения.
offset

Если задать значение offset элемента n больше 1, можно будет переместить оценку выражения n по строкам ниже верхней строки.

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

count Если задать для третьего параметра count значение больше 1, функция вернет ряд значений элемента count: по одному для каждой последней строки элемента count текущего сегмента столбца. В данной форме функция может использоваться в качестве аргумента для любой специальной функции интервала. Функции над выборкой
TOTAL

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

Определение объема агрегирования

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

Limitations:  

Рекурсивные вызовы возвращают значение NULL.

Examples and results:  

Example: 1

На снимке таблицы, показанной в этом примере, визуализация таблицы создана из измерения Customer и мер: Sum(Sales) и Top(Sum(Sales)).

Столбец Top(Sum(Sales)) возвращает значение 587 для всех строк, поскольку это значение верхней строки: Astrida.

В таблице также показаны более сложные меры: одна, созданная из элемента Sum(Sales)+Top(Sum(Sales)), а другая, помеченная как Top offset 3, созданная с помощью выражения Sum(Sales)+Top(Sum(Sales), 3), и имеющая аргумент offset, установленный на 3. Таким образом добавляется значение Sum(Sales) для текущей строки к значению из третьей строки от верхней строки, т. е. текущая строка плюс значение для элементаCanutility.

Example: 2

На снимках таблиц, показанных в этом примере, к визуализациям добавлено больше измерений: Month и Product. Для диаграмм с несколькими измерениями результаты выражений, содержащих функции Above, Below, Top и Bottom, зависят от порядка, в котором измерения столбцов сортируются Qlik Sense. Программа Qlik Sense оценивает функции на основе сегментов столбца, полученных из измерения, отсортированного последним. Контроль за порядком сортировки столбцов осуществляется на панели свойств под элементом Сортировка. Этот порядок не обязательно соответствует порядку отображения столбцов в таблице.

Первая таблица для примера 2. Значение элемента Top для меры First value основано на элементе Month (Jan).

Вторая таблица для примера 2. Значение элемента Top для меры First value основано на элементе Product (AA для Astrida).

Дополнительную информацию см. в примере 2 для функции Above.

Example: 3

Результат

Функцию Top можно использовать как ввод в функции над выборкой. Например, элемент RangeAvg (Top(Sum(Sales),1,3)).

В аргументах для функции Top() для элемента offset задано значение 1, а для элемента count задано значение 3. Функция находит результаты выражения Sum(Sales) в трех строках, начиная со строки под нижней строкой в сегменте столбца (поскольку offset=1), и в двух строках под ней (если есть строка). Эти три значения используются как ввод в функцию RangeAvg(), которая находит среднее значение в предоставленном диапазоне чисел.

Таблица с элементом Customer в виде измерения выдает следующие результаты для выражения RangeAvg().

 

Astrida

Betacab

Canutility

Divadip:

603

603

603

603

Monthnames:

LOAD * INLINE [

Month, Monthnumber

Jan, 1

Feb, 2

Mar, 3

Apr, 4

May, 5

Jun, 6

Jul, 7

Aug, 8

Sep, 9

Oct, 10

Nov, 11

Dec, 12

];

Sales2013:

crosstable (Month, Sales) LOAD * inline [

Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec

Astrida|46|60|70|13|78|20|45|65|78|12|78|22

Betacab|65|56|22|79|12|56|45|24|32|78|55|15

Canutility|77|68|34|91|24|68|57|36|44|90|67|27

Divadip|57|36|44|90|67|27|57|68|47|90|80|94

] (delimiter is '|');

Чтобы выполнить сортировку месяцев в правильном порядке, при создании визуализаций перейдите в раздел Sorting на панели свойств, выберите элемент Month и установите флажок Sort by expression. В поле выражения напишите Monthnumber.