RANK
применимо:вычисляемый столбецвычисляемой таблицеMeasureвизуального вычисления
Возвращает рейтинг текущего контекста в указанной секции, отсортированный по указанному порядку. If не удается найти совпадение, rankblank.
Синтаксис
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Параметры
Срок | Определение |
---|---|
ties |
(Необязательно) Определяет способ обработки ранжирования при привязке двух or больше строк.
If задано, поддерживаемые value — DENSE, or SKIP. If опущено: — значения по умолчанию для SKIP |
relation |
(Необязательно) Табличное выражение, из которого возвращается выходная строка.
If указанные столбцы all в orderBy andpartitionBy должны поступать из него.
If опущено: - orderBy необходимо явно указать.— столбцы All orderBy andpartitionBy должны быть полностью and поступать из одной таблицы.
. По умолчанию ALLSELECTED() столбцов all в orderBy andpartitionBy . |
axis |
(Необязательно) Ось в визуальной форме. Доступно только в визуальных вычислениях, and заменяет relation . |
orderBy |
(Необязательно) Предложение ORDERBY(), содержащее столбцы, define способ сортировки каждой секции.
If опущено: - relation необходимо явно указать.
— по умолчанию упорядочивается по каждому столбцу в relation not, который уже указан в partitionBy . |
blanks |
(Необязательно) Перечисление, определяющее, как обрабатывать blankvalues при сортировке.
Поддерживаемые values:
Примечание. Если blanks параметр and пустых в ORDERBY() функциях для отдельных выражений заданы, blanks для отдельного выражения orderBy имеет приоритет для соответствующего выражения orderBy, andorderBy выражения без указания blanks будут учитывать параметр blanks для родительской функции Window. |
partitionBy |
(Необязательно) Предложение PARTITIONBY(), содержащее столбцы, define секционирование relation .
If опущено, relation рассматривается как одна секция. |
matchBy |
(Необязательно) Предложение MATCHBY(), содержащее столбцы, define сопоставление данных and идентификации текущей строки. |
reset |
(Необязательно) Доступно только в визуальных вычислениях. Указывает if сбросы вычислений, and на каком уровне иерархии столбцов визуальной фигуры. Принятые values: ссылка на поле столбца в текущей визуальной форме, NONE (по умолчанию), LOWESTPARENT , HIGHESTPARENT , or целое число. Поведение зависит от целочисленного sign: - If ноль or пропущено, вычисление выполняет сброс not. Эквивалентно NONE .
— If положительным, целое число определяет столбец, начиная с самого высокого, независимо от зерна. HIGHESTPARENT эквивалентно 1.
- If отрицательное число определяет столбец, начиная с самого низкого, относительно текущего зерна. LOWESTPARENT эквивалентно -1. |
Возврат value
Номер rank для текущего контекста.
Замечания
Каждый столбец
orderBy
,partitionBy
andmatchBy
должен иметь соответствующий внешний value, чтобы помочь define текущей строке, в которой необходимо работать, с помощью следующего поведения:- If есть ровно один соответствующий внешний столбец, используется его value.
-
If нет соответствующего внешнего столбца, а затем:
-
RANK
first определить all
orderBy
,partitionBy
столбцы andmatchBy
, не имеющие соответствующего внешнего столбца. - Для каждого сочетания существующих values для этих столбцов в родительском контексте RANK возвращается RANKand возвращается строка.
- конечный результат RANK— это rank число.
-
RANK
first определить all
If
matchBy
присутствует, RANK попытается использовать столбцы вmatchBy
andpartitionBy
для idenfity текущей строки.If столбцы, указанные в
orderBy
andpartitionBy
, не могут однозначно идентифицировать каждую строку вrelation
, то два or больше строк могут иметь одинаковый рейтинг and ранжирование будет определяться параметром связей.RANK возвращает blankvalue для общих строк. Рекомендуется тщательно протестировать выражение.
RANK not сравнивается с RANKX, как SUM сравнивается с SUMX.
reset
можно использовать только в визуальных вычислениях, and нельзя использовать в сочетании сorderBy
orpartitionBy
. Ifreset
присутствует,axis
можно указать, ноrelation
невозможно.
Пример 1— вычисляемый столбец
Следующий запрос DAX:
EVALUATE
ADDCOLUMNS(
'DimGeography',
"Rank",
RANK(
DENSE,
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
LAST,
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc
Возвращает таблицу, которая ранжирует каждую географию с одинаковым значением EnglishCountryRegionName по значению StateProvinceName and City.
Blank
orderBy
столбца values сортируются в конце.
Пример 2. Визуальное вычисление
Следующие визуальные вычисления DAX запросах:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
Создайте два столбца, которые rank каждый month по общему объему продаж, оба в каждом year, and всю историю.
Снимок экрана ниже: визуальная матрица and выражения визуального вычисления first: