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

Функция Rank: что это такое

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

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

Синтаксис:  

Rank([TOTAL] expr[, mode[, fmt]])

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

В случае если несколько строк имеют одно и то же ранжирование, текстовое и числовое представления могут управляться параметрами mode и fmt.

Функция Rank: аргументы

Функция Rank имеет несколько аргументов, которые перечислены в таблице ниже:

Аргумент Описание
expr Выражение или поле, содержащее данные для измерения.
mode Указывает числовое представление результата функции.
fmt Указывает текстовое представление результата функции.
TOTAL Если диаграмма имеет одно измерение, или если выражению предшествует префикс TOTAL, функция выполняет оценку по всему столбцу. Если таблица или эквивалент таблицы имеют несколько вертикальных измерений, текущий сегмент столбца будет включать только строки с теми же значениями, что и текущая строка во всех столбцах измерений, кроме столбца с последним измерением в межполевом порядке сортировки.

Функция Rank: пример

Итак, теперь давайте рассмотрим, как работает функция Rank на примере.

У нас есть набор данных в csv-файле.

Скрипт загрузки

Через скрипт загрузки QlikView загружаем данные из CSV-файла (Ctrl+E). Во вкладке данные выбираем функцию табличных файлов и находим файл с данными, что представлен выше в статье. Нажимаем OK и выполняем перезагрузку данных нажатием клавиш CTRL+R.

rank_laod_script

Rank Function QlikView

Теперь данные загрузились в память QlikView.

Создание визуализации данных с функцией Rank()

Далее создадим визуализацию данных с ранжированием по измерению Product_Line. Так, выбираем тип графика – прямая таблица и нажимаем кнопку далее.

rank_chart_type

Rank Function QlikView

Выбираем измерение и жмем кнопку далее.

rank_select_diemnsions

Rank Function QlikView

После этого пишем пользовательское выражение с функцией Rank, которая является итоговой суммой по полю Value:

rank_chart_expression

Rank Function QlikView

А теперь нажимаем кнопку завершить, после чего у нас появиться таблица с ранжированными значениями по сумме продаж по каждой продуктовой линии. Так, первые места занимают Arts&Entertainment, Home&Golden и так далее:

rank_chart_data

Rank Function QlikView

Использование функций агрегирования c Rank

Такие функции агрегирования, как минимум, максимум, могут выполнять ранжирование в качестве аргумента, чтобы вернуть строки, которые соответствуют определенному значению ранжировки. Например, мы рассмотрим следующее выражение, выполненное в скрипте загрузки. Оно выдаст строки, которые содержат максимальное значение по полю Value для каждой продуктовой линии:

# Загрузка строк с максимальными значениями Value по каждой продуктовой линии.

 

Создание объекта листа

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

На этом все на сегодня! Отличных вам разработок с Qlik.