Udostępnij za pośrednictwem


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>.
(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:
  • 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.
  • 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 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:

Obliczanie wizualizacji języka DAX

INDEKS
ORDERBY
PARTYCJONOWANIE WG
OKNO
RANGA