RANK

Dotyczy: Obliczanie kolumny obliczeniowejtabeliobliczeniowej Miarawizualizacji

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 zostanie określona, obsługiwana wartość to DENSE lub SKIP.
Jeśli pominięto:
— wartości domyślne do pominięcia
Relacji (Opcjonalnie) Wyrażenie tabeli, z którego zwracany jest wiersz wyjściowy.
W przypadku określenia wszystkie kolumny w <kolejnościBy> i <partitionBy> muszą pochodzić z niej.
Jeśli pominięto:
- <orderBy> musi być jawnie określony.
— Wszystkie <kolumny orderBy> i <partitionBy> muszą być w pełni kwalifikowane i pochodzą z jednej tabeli.
- Domyślnie to ALLSELECTED() wszystkich kolumn w <kolejnościBy> i <partitionBy>.
(Opcjonalnie) Oś w kształcie wizualizacji. Dostępne tylko w obliczeniach wizualnych i zamienia relację<>.
Orderby (Opcjonalnie) Klauzula ORDERBY() zawierająca kolumny definiujące sposób sortowania poszczególnych partycji.
Jeśli pominięto:
- <należy jawnie określić relację> .
— Domyślnie kolejność według każdej kolumny w <relacji> , która nie jest jeszcze określona w <partycjiBy>.
Puste (Opcjonalnie) Wyliczenie, które definiuje sposób obsługi pustych wartości podczas sortowania.
Obsługiwane wartości to:
  • KEEP (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.
  • NAJPIERW wartości puste są zawsze uporządkowane na początku, niezależnie od kolejności sortowania rosnącego lub malejącego.
  • OSTATNIE, puste elementy są zawsze uporządkowane na końcu, niezależnie od kolejności sortowania rosnącego lub malejącego.

Należy pamiętać, że jeśli <określono parametr blanks> i wartości puste w funkcji ORDERBY() dla pojedynczego wyrażenia orderBy, <wartości puste> w wyrażeniu orderBy mają priorytet dla odpowiedniego wyrażenia orderBy, a wyrażenia orderBy bez <określenia wartości pustych> będą honorować <pusty> parametr w nadrzędnej funkcji Okna.
partitionBy (Opcjonalnie) Klauzula PARTITIONBY() zawierająca kolumny definiujące sposób <partycjonowania relacji> .
W przypadku pominięcia <relacja> jest traktowana jako pojedyncza partycja.
matchBy (Opcjonalnie) Klauzula MATCHBY() zawierająca kolumny definiujące sposób dopasowywania danych i identyfikowania bieżącego wiersza.
Resetowanie (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: NONE, LOWESTPARENT, HIGHESTPARENT lub integer. Zachowanie zależy od znaku całkowitego:
— jeśli nie zostanie pominięte, obliczenie nie zostanie zresetowane. Odpowiednik NONE.
- Jeśli dodatni, liczba całkowita identyfikuje kolumnę rozpoczynającą się od najwyższego, niezależnego od ziarna. ELEMENT HIGHESTPARENT jest odpowiednikiem wartości 1.
- Jeśli ujemna, liczba całkowita identyfikuje kolumnę rozpoczynającą się od najniższej, względem bieżącego ziarna. WARTOŚĆ LOWESTPARENT jest równoważna -1.

Wartość zwracana

Numer rangi dla bieżącego kontekstu.

Uwagi

  • Każda kolumna <orderBy>, <partitionBy> i <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:
      • Pozycja RANK najpierw określi wszystkie <kolumny orderBy>, <partitionBy i <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 obliczany, a wiersz jest zwracany.
      • Końcowe dane wyjściowe ranka to liczba rangi.
  • Jeśli <element matchBy> jest obecny, funkcja RANK spróbuje użyć kolumn w <kolumnach matchBy> i <partitionBy> , aby idenfity bieżącego wiersza.

  • Jeśli kolumny określone w kolumnach <orderBy> i <partitionBy> nie mogą jednoznacznie zidentyfikować każdego wiersza w <relacji>, co najmniej dwa wiersze mogą mieć ten sam ranking, a klasyfikacja zostanie określona przez parametr więzi.

  • Funkcja RANK zwraca pustą wartość dla wierszy sumy. Zaleca się dokładne przetestowanie wyrażenia.

  • Funkcja RANK nie jest porównywana z RANKX, ponieważ funkcja SUM porównuje się z SUMX.

  • <resetowanie> można używać tylko w obliczeniach wizualnych i nie można ich używać w połączeniu z kolumnami <orderBy> lub <partitionBy>. Jeśli <resetowanie> jest obecne, oś> można określić, <ale <nie można relować>.

Przykład 1 — kolumna obliczeniowa

Następujące zapytanie języka 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 zapytania języka DAX dotyczące obliczeń wizualnych:

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:

Obliczanie wizualizacji języka DAX

INDEKS
ORDERBY
PARTYCJONOWANIE WG
OKNO
ROWNUMBER