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 в orderByandpartitionBy должны поступать из него.
If опущено:
- orderBy необходимо явно указать.
— столбцы AllorderByandpartitionBy должны быть полностью and поступать из одной таблицы.
. По умолчанию ALLSELECTED() столбцов all в orderByandpartitionBy.
axis (Необязательно) Ось в визуальной форме. Доступно только в визуальных вычислениях, and заменяет relation.
orderBy (Необязательно) Предложение ORDERBY(), содержащее столбцы, define способ сортировки каждой секции.
If опущено:
- relation необходимо явно указать.
— по умолчанию упорядочивается по каждому столбцу в relationnot, который уже указан в partitionBy.
blanks (Необязательно) Перечисление, определяющее, как обрабатывать blankvalues при сортировке.
Поддерживаемые values:
  • KEEP (valueпо умолчанию), где поведение числовых valuesblankvalues упорядочено от нуля and отрицательных values. Поведение строк blankvalues упорядочивается перед all строками, включая пустые строки.
  • FIRSTпустые поля всегда упорядочены в начале независимо от возрастания or порядка сортировки по убыванию.
  • LAST, пустые поля всегда упорядочены в конце независимо от возрастания or порядка сортировки по убыванию.

Примечание. Если 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, partitionByandmatchBy должен иметь соответствующий внешний value, чтобы помочь define текущей строке, в которой необходимо работать, с помощью следующего поведения:

    • If есть ровно один соответствующий внешний столбец, используется его value.
    • If нет соответствующего внешнего столбца, а затем:
      • RANK first определить allorderBy, partitionByстолбцы andmatchBy, не имеющие соответствующего внешнего столбца.
      • Для каждого сочетания существующих values для этих столбцов в родительском контексте RANK возвращается RANKand возвращается строка.
      • конечный результат RANK— это rank число.
  • If matchBy присутствует, RANK попытается использовать столбцы в matchByandpartitionBy для idenfity текущей строки.

  • If столбцы, указанные в orderByandpartitionBy, не могут однозначно идентифицировать каждую строку в relation, то два or больше строк могут иметь одинаковый рейтинг and ранжирование будет определяться параметром связей.

  • RANK возвращает blankvalue для общих строк. Рекомендуется тщательно протестировать выражение.

  • RANK not сравнивается с RANKX, как SUM сравнивается с SUMX.

  • reset можно использовать только в визуальных вычислениях, and нельзя использовать в сочетании с orderByorpartitionBy. If reset присутствует, 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:

DAX визуального вычисления

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER