RANK
Dotyczy:kolumna obliczeniowa
tabela obliczeniowa
Miara
wizualizacji
Zwraca klasyfikację bieżącego kontekstu w określonej partycji posortowaną według określonej kolejności. Jeśli nie można odnaleźć dopasowania, pozycja jest pusta.
Składnia
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametry
Termin | Definicja |
---|---|
ties |
(Opcjonalnie) Definiuje sposób obsługi klasyfikacji, gdy są powiązane co najmniej dwa wiersze.
Jeśli określono, obsługiwana wartość to GĘSTA lub SKIP. Jeśli pominięto: — ustawienia domyślne do pominięcia |
relation |
(Opcjonalnie) Wyrażenie tabeli, z którego zwracany jest wiersz wyjściowy.
Jeśli określono, wszystkie kolumny w orderBy i partitionBy muszą pochodzić z niej.
Jeśli pominięto: - orderBy należy jawnie określić.— wszystkie kolumny orderBy i partitionBy muszą być w pełni kwalifikowane i pochodzą z jednej tabeli.
— domyślnie ALLSELECTED() wszystkich kolumn w orderBy i partitionBy . |
axis |
(Opcjonalnie) Oś w kształcie wizualizacji. Dostępne tylko w obliczeniach wizualnych i zastępuje relation . |
orderBy |
(Opcjonalnie) Klauzula ORDERBY() zawierająca kolumny definiujące sposób sortowania poszczególnych partycji.
Jeśli pominięto: - relation należy jawnie określić.
— domyślnie kolejność według każdej kolumny w relation , która nie jest jeszcze określona w partitionBy . |
blanks |
(Opcjonalnie) Wyliczenie, które definiuje sposób obsługi pustych wartości podczas sortowania relation lub axis .
Obsługiwane wartości to:
Uwaga, gdy parametr blanks i wartości puste w funkcji ORDERBY() () dla poszczególnych wyrażeń są określone, blanks w przypadku pojedynczego wyrażenia orderBy ma priorytet dla odpowiedniego wyrażenia orderBy, a wyrażenia orderBy bez blanks określone będą honorować blanks parametr w funkcji nadrzędnej. |
partitionBy |
(Opcjonalnie) Klauzula PARTITIONBY() zawierająca kolumny definiujące sposób partycjonowania relation . Jeśli pominięto, relation jest traktowana jako pojedyncza partycja. |
matchBy |
(Opcjonalnie) Klauzula MATCHBY() zawierająca kolumny definiujące, jak dopasować dane i zidentyfikować bieżący wiersz. |
reset |
(Opcjonalnie) Dostępne tylko w obliczeniach wizualnych. Wskazuje, czy obliczenia są resetowane i na jakim poziomie hierarchii kolumn kształtu wizualizacji. Akceptowane wartości to: odwołanie do pola do kolumny w bieżącym kształcie wizualizacji, NONE (ustawienie domyślne), LOWESTPARENT , HIGHESTPARENT lub liczba całkowita. Zachowanie zależy od znaku całkowitego: — jeśli nie zostanie pominięte, obliczenie nie zostanie zresetowane. Odpowiednik NONE .
— jeśli jest dodatnia, liczba całkowita identyfikuje kolumnę rozpoczynającą się od najwyższego, niezależnego od ziarna. HIGHESTPARENT jest równoważne 1.
— jeśli jest ujemna, liczba całkowita identyfikuje kolumnę rozpoczynającą się od najniższego, względem bieżącego ziarna. LOWESTPARENT jest równoważne -1. |
Wartość zwracana
Numer rangi dla bieżącego kontekstu.
Uwagi
Każda kolumna
orderBy
,partitionBy
imatchBy
musi mieć odpowiadającą wartość zewnętrzną, aby ułatwić zdefiniowanie bieżącego wiersza, na którym będzie działać, z następującym zachowaniem:- Jeśli jest dokładnie jedna odpowiadająca kolumnie zewnętrznej, zostanie użyta jej wartość.
- Jeśli nie ma odpowiedniej kolumny zewnętrznej, wówczas:
-
RANK najpierw określi wszystkie kolumny
orderBy
,partitionBy
imatchBy
, które nie mają odpowiedniej kolumny zewnętrznej. - Dla każdej kombinacji istniejących wartości dla tych kolumn w kontekście nadrzędnym RANK jest obliczana RANK i zwracany jest wiersz.
- RANKkońcowe dane wyjściowe to liczba rangi.
-
RANK najpierw określi wszystkie kolumny
Jeśli
matchBy
jest obecny, RANK spróbuje użyć kolumn wmatchBy
ipartitionBy
, aby idenfity bieżącego wiersza.Jeśli kolumny określone w
orderBy
ipartitionBy
nie mogą jednoznacznie zidentyfikować każdego wiersza wrelation
, to dwa lub więcej wierszy może mieć ten sam ranking, a klasyfikacja zostanie określona przez parametr więzi.RANK zwraca wartość pustą dla wierszy sumy. Zaleca się dokładne przetestowanie wyrażenia.
RANK nie porównuje się z RANKX, ponieważ SUM porównuje się z SUMX.
reset
można używać tylko w obliczeniach wizualnych i nie można ich używać w połączeniu zorderBy
lubpartitionBy
. Jeślireset
jest obecny,axis
można określić, ale nie możnarelation
.
Przykład 1 — kolumna obliczeniowa
Następujące zapytanie 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
Zwraca tabelę, która klasyfikuje każdą lokalizację geograficzną o tej samej nazwie EnglishCountryRegionName według wartości StateProvinceName i City. Puste wartości kolumn orderBy
są sortowane na końcu.
Przykład 2 — obliczenia wizualne
Następujące obliczenia wizualne DAX zapytania:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
Utwórz dwie kolumny, które klasyfikują każdy miesiąc według łącznej sprzedaży, zarówno w ciągu każdego roku, jak i całej historii.
Poniższy zrzut ekranu przedstawia macierz wizualizacji i pierwsze wyrażenie obliczania wizualizacji:
obliczania wizualizacji