В течение многих лет я видел, как функция Rank используется в выражениях. А другой интересной возможностью ее использования является применение в диаграммах и графиках. В этой статье расскажу, как использовать аргументы этой функции для изменения представления ранжируемых данных.
Функция Rank: что это такое
Функция Rank оценивает строки диаграммы в выражении и для каждой строки отображает относительное положение значения измерения, оцененного в выражении. При оценке выражения эта функция сравнивает результат с результатом других строк, содержащих текущий сегмент столбца, и возвращает ранжирование текущей строки в сегменте.
Для диаграмм, за исключением таблиц, сегмент текущего столбца определяется так, как он отображается в эквиваленте прямой таблицы диаграммы.
Синтаксис:
Rank([TOTAL] expr[, mode[, fmt]])
Ранжирование возвращается в виде двойного значения, которое, в случае если каждая строка имеет уникальное ранжирование, будет представлять собой целое число от 1 до количества строк в текущем сегменте столбца.
В случае если несколько строк имеют одно и то же ранжирование, текстовое и числовое представления могут управляться параметрами mode и fmt.
Функция Rank: аргументы
Функция Rank имеет несколько аргументов, которые перечислены в таблице ниже:
Функция Rank: пример
Итак, теперь давайте рассмотрим, как работает функция Rank на примере.
У нас есть набор данных в csv-файле.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Product_Id,Product_Line,Product_category,Quantity,Value 1,Sporting Goods,Outdoor Recreation,12,5642 2,Food, Beverages & Tobacco,38,2514 3,Apparel & Accessories,Clothing,54,2365 4,Apparel & Accessories,Costumes & Accessories,29,4487 5,Sporting Goods,Athletics,11,812 6,Health & Beauty,Personal Care,21,6912 7,Arts & Entertainment,Hobbies & Creative Arts,58,5201 8,Arts & Entertainment,Paintings,73,8451 9,Arts & Entertainment,Musical Instruments,41,1245 10,Hardware,Tool Accessories,2,456 11,Home & Garden,Bathroom Accessories,36,241 12,Food,Drinks,54,1247 13,Home & Garden,Lawn & Garden,29,5462 14,Office Supplies,Presentation Supplies,22,577 15,Hardware,Blocks,53,548 16,Baby & Toddler,Diapering,19,1247 17,Baby & Toddler,Toys,9,257 18,Home & Garden,Pipes,81,1241 19,Office Supplies,Display Board,29,2177 |
Скрипт загрузки
Через скрипт загрузки QlikView загружаем данные из CSV-файла (Ctrl+E). Во вкладке данные выбираем функцию табличных файлов и находим файл с данными, что представлен выше в статье. Нажимаем OK и выполняем перезагрузку данных нажатием клавиш CTRL+R.
Теперь данные загрузились в память QlikView.
Создание визуализации данных с функцией Rank()
Далее создадим визуализацию данных с ранжированием по измерению Product_Line. Так, выбираем тип графика – прямая таблица и нажимаем кнопку далее.
Выбираем измерение и жмем кнопку далее.
После этого пишем пользовательское выражение с функцией Rank, которая является итоговой суммой по полю Value:
А теперь нажимаем кнопку завершить, после чего у нас появиться таблица с ранжированными значениями по сумме продаж по каждой продуктовой линии. Так, первые места занимают Arts&Entertainment, Home&Golden и так далее:
Использование функций агрегирования c Rank
Такие функции агрегирования, как минимум, максимум, могут выполнять ранжирование в качестве аргумента, чтобы вернуть строки, которые соответствуют определенному значению ранжировки. Например, мы рассмотрим следующее выражение, выполненное в скрипте загрузки. Оно выдаст строки, которые содержат максимальное значение по полю Value для каждой продуктовой линии:
# Загрузка строк с максимальными значениями Value по каждой продуктовой линии.
1 2 3 4 5 6 7 8 9 10 11 |
LOAD Product_Line, max(Value,1) FROM [E:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) group by Product_Line; |
Создание объекта листа
А теперь давайте добавим прямую таблицу, которая покажет данные, которые загрузились при помощи этого скрипта. Создаем объект листа Таблица и выбираем нужные поля для отображения. В итоге, мы получим нужную нам таблицу с необходимыми значениями ранжирования.
На этом все на сегодня! Отличных вам разработок с Qlik.
Свежие комментарии