ROWNUMBER
Dotyczy: Obliczanie kolumny obliczeniowej tabeli Obliczeniowej Obliczenie wizualizacji
Zwraca unikatowy ranking dla bieżącego kontekstu w określonej partycji posortowany według określonej kolejności. Jeśli nie można odnaleźć dopasowania, numer wiersza jest pusty.
Składnia
ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametry
Termin | Definicja |
---|---|
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 wiersza 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:
- WierszNUMBER 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 ROWNUMBER jest obliczana i zwracany jest wiersz.
- Końcowe dane wyjściowe ROWNUMBER są połączeniem tych wierszy.
- Jeśli istnieje więcej niż jedna odpowiadająca kolumna zewnętrzna, zwracany jest błąd.
Jeśli <element matchBy> jest obecny, wiersz ROWNUMBER 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>, wówczas:
- Funkcja ROWNUMBER spróbuje znaleźć najmniejszą liczbę dodatkowych kolumn wymaganych do unikatowego zidentyfikowania każdego wiersza.
- Jeśli takie kolumny można znaleźć, WIERSZNUMBER będzie
- Spróbuj znaleźć najmniejszą liczbę dodatkowych kolumn wymaganych do unikatowego identyfikowania każdego wiersza.
- Automatycznie dołącz te nowe kolumny do <klauzuli orderBy> .
- Sortuj każdą partycję przy użyciu tego nowego zestawu kolumn orderBy.
- Jeśli nie można odnaleźć takich kolumn i funkcja wykryje remis w czasie wykonywania, zwracany jest błąd.
<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',
"UniqueRank",
ROWNUMBER(
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc
Zwraca tabelę, która unikatowo klasyfikuje każdą lokalizację geograficzną o tej samej nazwie EnglishCountryRegionName według wartości StateProvinceName i City.
Przykład 2 — obliczenia wizualne
Następujące zapytania języka DAX dotyczące obliczeń wizualnych:
SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))
Utwórz dwie kolumny, które unikatowo 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: