Udostępnij za pośrednictwem


RANK

Dotyczy:kolumna obliczeniowatabela obliczeniowaMiarawizualizacji

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:
  • DEFAULT (wartość domyślna), gdzie zachowanie wartości liczbowych jest wartościami pustymi, są uporządkowane między wartościami zerowym i ujemnym. Zachowanie ciągów jest puste wartości są uporządkowane przed wszystkimi ciągami, w tym pustymi ciągami.
  • FIRSTwartości puste są zawsze uporządkowane na początku, niezależnie od kolejności sortowania rosnącego lub malejącego.
  • LASTwartości puste są zawsze uporządkowane na końcu, niezależnie od kolejności sortowania rosnącego lub malejącego.

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, HIGHESTPARENTlub 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, partitionByi matchBy 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, partitionByi matchBy, 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.
  • Jeśli matchBy jest obecny, RANK spróbuje użyć kolumn w matchBy i partitionBy, aby idenfity bieżącego wiersza.

  • Jeśli kolumny określone w orderBy i partitionBy nie mogą jednoznacznie zidentyfikować każdego wiersza w relation, 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 z orderBy lub partitionBy. Jeśli reset jest obecny, axis można określić, ale nie można relation.

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

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER