RANK
Область применения: вычисление вычисляемого столбца вычисляемой таблицы Меры визуального элемента
Возвращает рейтинг текущего контекста в указанной секции, отсортированный по указанному порядку. Если совпадение не удается найти, то ранг пустой.
Синтаксис
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Параметры
Термин | Определение |
---|---|
вия | (Необязательно) Определяет способ обработки ранжирования при привязке двух или более строк. Если задано, поддерживаемое значение имеет значение DENSE или SKIP. Если опущено: - Значение по умолчанию для SKIP |
relation | (Необязательно) Табличное выражение, из которого возвращается выходная строка. Если задано, все столбцы в <порядке и <partitionBy>> должны поступать из него. Если опущено: — <orderBy> должен быть явно указан. — Все <столбцы orderBy> и <partitionBy> должны быть полностью квалифицированы и получены из одной таблицы. — Значение по умолчанию — ALLSELECTED() всех столбцов в <порядке> и <partitionBy>. |
Ось X | (Необязательно) Ось в визуальной форме. Доступно только в визуальных вычислениях и заменяет <отношение>. |
orderBy | (Необязательно) Предложение ORDERBY(), содержащее столбцы, определяющие порядок сортировки каждой секции. Если опущено: — <связь> должна быть явно указана. — по умолчанию упорядочивается по каждому столбцу в <отношении> , который еще не указан в <partitionBy>. |
Пробелы | (Необязательно) Перечисление, определяющее, как обрабатывать пустые значения при сортировке. Поддерживаемые значения:
Обратите внимание, что при <указании пустых> параметров и пустых значений в функции ORDERBY() для отдельного> <выражения orderBy и выражения orderBy без <указания пустых> параметров будут учитываться <> в родительской функции Window. |
partitionBy | (Необязательно) Предложение PARTITIONBY(), содержащее столбцы, определяющие <секционирование отношений> . Если опущено, <реляционная связь> рассматривается как одна секция. |
matchBy | (Необязательно) Предложение MATCHBY(), содержащее столбцы, определяющие сопоставление данных и определение текущей строки. |
reset | (Необязательно) Доступно только в визуальных вычислениях. Указывает, сбрасывается ли вычисление и на каком уровне иерархии столбцов визуальной фигуры. Допустимые значения: NONE, LOWESTPARENT, HIGHESTPARENT или целое число. Поведение зависит от целочисленного знака: если ноль или опущено, вычисление не сбрасывается. Эквивалент NONE. — Если положительный, целое число определяет столбец, начиная с самого высокого, независимо от зерна. САМЫЙ ВЫСОКИЙ УРОВЕНЬ ЭКВИВАЛЕНТЕН 1. — Если отрицательное, целое число определяет столбец, начиная с самого низкого, относительно текущего зерна. САМЫЙ НИЗКИЙPARENT эквивалентен -1. |
Возвращаемое значение
Номер ранга для текущего контекста.
Замечания
Каждый <столбец orderBy>, <partitionBy> и <matchBy> должен иметь соответствующее внешнее значение, чтобы определить текущую строку, в которой следует работать, с помощью следующего поведения:
- Если есть ровно один соответствующий внешний столбец, используется его значение.
- Если соответствующий внешний столбец отсутствует, то:
- РАНГ сначала определяет все <столбцы orderBy>, <partitionBy> и <matchBy> , у которых нет соответствующего внешнего столбца.
- Для каждого сочетания существующих значений для этих столбцов в родительском контексте РАНГ вычисляется и возвращается строка.
- Окончательный результат РАНГа — это номер ранга.
Если <значение matchBy> присутствует, РАНГ попытается использовать столбцы в <matchBy и <partitionBy>> для idenfity текущей строки.
Если столбцы, указанные в <orderBy> и <partitionBy> , не могут однозначно идентифицировать каждую строку в <отношении>, то две или более строк могут иметь одинаковый рейтинг, а ранжирование определяется параметром связей.
РАНГ возвращает пустое значение для общих строк. Рекомендуется тщательно протестировать выражение.
РАНГ не сравнивается с RANKX, так как СУММА сравнивается с SUMX.
<сброс> можно использовать только в визуальных вычислениях и не может использоваться в сочетании с <orderBy> или <partitionBy>. Если <сброс> присутствует, ось> может быть указана, <но <связь> не может быть указана.
Пример 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 и City. Пустые <значения столбца orderBy> отсортированы в конце.
Пример 2. Визуальное вычисление
Следующие запросы DAX визуального вычисления:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
Создайте два столбца, которые ранжировать каждый месяц по общему объему продаж, как в течение каждого года, так и всей истории.
Снимок экрана ниже: визуальная матрица и первое выражение визуального вычисления: