Перейти к основному содержимому Перейти к дополнительному содержимому

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

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

Сегменты столбцов

Таблица, в которой отображаются сегменты столбцов

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

Синтаксис:  

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

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

Аргументы:  

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

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

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

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

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

mode

Второй аргумент, mode, может принимать следующие значения:

Примеры mode
Значение Описание
0 (по умолчанию)

Если все ряды в совместно используемой группе выпадают на нижнюю часть среднего значения всего ранжирования, все строки получают низший ряд в совместно используемой группе.

Если все ряды в совместно используемой группе выпадают на верхнюю часть среднего значения всего ранжирования, все строки получают высший ряд в совместно используемой группе.

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

1 Нижний ряд на всех строках.
2 Средний ряд на всех строках.
3 Высший ряд на всех строках.
4 Самый нижний ряд на первой строке, увеличенный на один для каждой строки.
fmt

Третий аргумент, fmt, может принимать следующие значения:

Примеры fmt
Значение Описание
0 (по умолчанию) Низкое значениевысокое значение во всех строках (например, 3–4).
1 Нижнее значение на всех строках.
2 Нижнее значение на первой строке, пустое на следующих строках.

Порядок строк mode 4 и fmt 2 определяется порядком сортировки измерений диаграммы.

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

Создайте две визуализации. Одну с измерениями Product и Sales, а вторую с измерениями Product и UnitSales. Добавьте меры, как показано на следующей таблице.

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

Пример 1. Создайте таблицу с измерениями Customer и Sales и мерой Rank(Sales)

Результат зависит от порядка сортировки измерений. Если таблица сортируется по элементу Customer, в таблице перечисляются все значения элемента Sales для элемента Astrida, затем для элемента Betacab и т. д. В результатах для элемента Rank(Sales) будет отображено значение 10 для значения Sales, равного 12, 9 для значения Sales, равного 13 и т. д. со значением ранжирования 1, возвращенного для значения Sales, равного 78. Следующий сегмент столбца начинается с элемента Betacab, для которого первое значение элемента Sales в сегменте равно 12. Значение ранжирования элемента Rank(Sales) дано для этого как 11.

Если таблица сортируется по элементу Sales, сегменты столбца состоят из значений элемента Sales и соответствующего элемента Customer. Поскольку существует два значения элемента Sales, равных 12, (для Astrida и Betacab), значение элемента Rank(Sales) для этого сегмента столбца составляет 1–2 для каждого значения элемента Customer. Это потому, что существуют два значения элемента Customer, где элемент Sales равен 12. Если бы было 4 значения, результат был бы 1–4 для всех строк. На этом примере видно, как выглядит результат для значения по умолчанию (0) аргумента fmt.

Пример 2. Замените измерение Customer измерением Product и добавьте меру Rank(Sales,1,2) Будет возвращено значение 1 в первой строке в сегменте каждого столбца, а все остальные строки останутся пустыми, поскольку для аргументов mode и fmt установлены значения 1 и 2 соответственно.

Результаты для примера 1 — таблица отсортирована по значению Customer:

Результирующая таблица
Customer Sales Rank(Sales)
Astrida 12 10
Astrida139
Astrida208
Astrida227
Astrida456
Astrida465
Astrida604
Astrida653
Astrida702
Astrida781
Betcab1211

Результаты для примера 1 — таблица отсортирована по значению Sales:

Результирующая таблица
Customer Sales Rank(Sales)
Astrida 12 1-2
Betacab121-2
Astrida131
Betacab151
Astrida201
Astrida221-2
Betacab221-2
Betacab241-2
Canutility241-2

 

Данные, используемые в примерах:

ProductData:

Load * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD|0|25

Canutility|AA|8|15

Canutility|CC|0|19

] (delimiter is '|');

 

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 '|');

 

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!