RANGA
Dotyczy: Obliczanie kolumny obliczeniowej tabeli Obliczeniowej Obliczenie 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 zostanie określona, obsługiwana wartość to DENSE lub SKIP. Jeśli pominięto: — wartości domyślne do pominięcia |
relacja | (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>. |
oś | (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:
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: