Udostępnij za pośrednictwem


ROWNUMBER

Dotyczy:kolumna obliczeniowatabela obliczeniowaMiarawizualizacji

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
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 wiersza 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:
    • ROWNUMBER 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 ROWNUMBER jest obliczana ROWNUMBER i zwracany jest wiersz.
    • ROWNUMBERkońcowe dane wyjściowe to połączenie tych wierszy.
  • Jeśli istnieje więcej niż jedna odpowiadająca kolumna zewnętrzna, zwracany jest błąd.

Jeśli matchBy jest obecny, ROWNUMBER 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, wówczas:

  • ROWNUMBER spróbuje znaleźć najmniejszą liczbę dodatkowych kolumn wymaganych do unikatowego zidentyfikowania każdego wiersza.
  • Jeśli takie kolumny można znaleźć, ROWNUMBER
    • 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.

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',
    "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 obliczenia wizualne DAX zapytania:

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:

obliczania wizualizacji

INDEX ORDERBY PARTITIONBY WINDOW RANK