Перейти к основному содержимому Skip to complementary content

Top

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

Синтаксис:  

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

Возвращаемые типы данных: двойное значение

Аргументы:  

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

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

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

Ограничения:  

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

Примеры и результаты:  

Пример 1:  

Пример вывода таблицы
Customer Sum(Sales) Top(Sum(Sales)) Sum(Sales) + Top(Sum(Sales)) Top offset 3
  2566 587 3153 3249
Astrida 587 587 1174 1270
Betacab 539 587 1126 1222
Canutility 683 587 1270 1366
Divadip 757 587 1344 1440

В представлении диаграммы таблицы, показанном в этом примере, таблица создана из измерения 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.

Пример 2:  

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

Пример вывода первой таблицы
Customer Product Month Sum(Sales) First value
      2566 -
Astrida AA Jan 46 46
Astrida AA Feb 60 46
Astrida AA Mar 70 46
... ... ... ... ...
Astrida AA Sep 78 46
Astrida AA Oct 12 46
Astrida AA Nov 78 46
Astrida AA Dec 22 46
Astrida BB Jan 46 46
Пример вывода второй таблицы
Customer Product Month Sum(Sales) First value
      2566 -
Astrida AA Jan 46 46
Astrida BB Jan 46 46
Astrida AA Feb 60 60
Astrida BB Feb 60 60
Astrida AA Mar 70 70
Astrida BB Mar 70 70
Astrida AA Apr 13 13
Astrida BB Apr 13 13

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

Пример 3:  

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

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

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

Пример вывода таблицы
Customer RangeAvg (Top(Sum(Sales),1,3))
Astrida 603
Betacab 603
Canutility 603
Divadip 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 '|');

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

Присоединяйтесь к программе модернизации аналитики

Remove banner from view

Модернизируйте ваши важные приложения QlikView без ущерба с помощью программы модернизации аналитики. Щелкните здесь для получения дополнительной информации или свяжитесь с нами: ampquestions@qlik.com