Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Kolumna
obliczeniowaTabela
obliczeniowaMiara
Obliczenia wizualne
Zwraca wiele wierszy umieszczonych w danym interwale.
Składnia
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametry
| Termin | Definicja |
|---|---|
from |
Wskazuje, gdzie jest uruchamiane okno. Może to być dowolne wyrażenie DAX zwracające wartość skalarną.
Zachowanie zależy od parametru from_type: — jeśli from_type jest REL, liczba wierszy do powrotu (wartość ujemna) lub do przodu (wartość dodatnia) z bieżącego wiersza w celu uzyskania pierwszego wiersza w oknie.
— jeśli from_type jest ABS, a from jest dodatnia, jest to pozycja początku okna od początku partycji. Indeksowanie jest oparte na 1 i 0 jest interpretowane jako 1. Na przykład 0 i 1 oznacza, że okno zaczyna się od początku partycji. Jeśli from jest ujemna, jest to pozycja początku okna od końca partycji. -1 oznacza ostatni wiersz w partycji. |
from_type |
Modyfikuje zachowanie parametru from. Możliwe wartości to ABS (bezwzględne) i REL (względne). Wartość domyślna to REL. |
to |
Taki sam jak from, ale wskazuje koniec okna. Ostatni wiersz znajduje się w oknie. |
to_type |
Tak samo jak from_type, ale modyfikuje zachowanie to. |
relation |
(Opcjonalnie) Wyrażenie tabeli, z którego są zwracane wiersze wyjściowe. Jeśli jest używany w obliczeniach wizualnych, ten parametr akceptuje oś w kształcie wizualizacji.
Jeśli określono, wszystkie kolumny w partitionBy muszą pochodzić z niej lub powiązanej tabeli.
Jeśli pominięto: - orderBy należy jawnie określić.— wszystkie wyrażenia orderBy i partitionBy muszą być w pełni kwalifikowane nazwy kolumn i pochodzą z jednej tabeli.
— domyślnie ALLSELECTED() wszystkich kolumn w orderBy i partitionBy. |
orderBy |
(Opcjonalnie) Klauzula ORDERBY() zawierająca wyrażenia 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:
Należy pamiętać, że gdy blanks parametr i wartości puste w funkcji () dla poszczególnych wyrażeńORDERBY są określone, blanks wyrażenie orderBy ma priorytet dla odpowiedniego wyrażenia orderBy, a wyrażenia orderBy bez blanks określenia będą honorować blanks parametr w funkcji nadrzędnej. |
partitionBy |
(Opcjonalnie) A PARTITIONBY() klauzula zawierająca kolumny definiujące sposób relation partycjonowania. Jeśli pominięto, relation jest traktowana jako pojedyncza partycja. |
matchBy |
(Opcjonalnie) A MATCHBY() klauzula zawierająca kolumny definiujące sposób dopasowania danych i identyfikowania bieżącego wiersza. |
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
Wszystkie wiersze z okna.
Uwagi
Z wyjątkiem kolumn dodanych przez funkcje tabeli DAX każda kolumna w relation, gdy matchBy nie jest obecna, lub każda kolumna w matchBy i partitionBy, gdy matchBy jest obecna, musi mieć odpowiednią wartość zewnętrzną, aby ułatwić zdefiniowanie bieżącego wiersza, na którym będzie działać. Jeśli obie from_type i to_type mają wartość ABS, następujące elementy dotyczą tylko kolumn partitionBy:
- Jeśli jest dokładnie jedna odpowiadająca kolumnie zewnętrznej, zostanie użyta jej wartość.
- Jeśli nie ma odpowiedniej kolumny zewnętrznej:
- WINDOW najpierw określi wszystkie kolumny, które nie mają odpowiedniej kolumny zewnętrznej.
- Dla każdej kombinacji istniejących wartości dla tych kolumn w kontekście nadrzędnym WINDOWjest obliczana WINDOW i zwracane są odpowiednie wiersze.
- WINDOW ostateczne dane wyjściowe są połączeniem tych wierszy.
- Jeśli istnieje więcej niż jedna odpowiadająca kolumna zewnętrzna, zwracany jest błąd.
Jeśli wszystkie kolumny relationzostały dodane przez funkcje tabeli DAX, zwracany jest błąd.
Jeśli matchBy jest obecny, WINDOW spróbuje użyć kolumn matchBy i partitionBy w celu zidentyfikowania wiersza.
Jeśli matchBy nie istnieje, a kolumny określone w orderBy i partitionBy nie mogą jednoznacznie zidentyfikować każdego wiersza w relation, wówczas:
- WINDOW spróbuje znaleźć najmniejszą liczbę dodatkowych kolumn wymaganych do unikatowego zidentyfikowania każdego wiersza.
- Jeśli takie kolumny zostaną znalezione, WINDOW automatycznie dołączy te nowe kolumny do
orderBy, a każda partycja zostanie posortowana przy użyciu tego nowego zestawu kolumn orderBy. - Jeśli nie można odnaleźć takich kolumn, zostanie zwrócony błąd.
Pusta tabela jest zwracana, jeśli:
- Odpowiadająca zewnętrzna wartość kolumny
orderBylubpartitionBynie istnieje wrelation. - Całe okno znajduje się poza partycją lub początek okna znajduje się po jego zakończeniu.
Jeśli WINDOW jest używana w kolumnie obliczeniowej zdefiniowanej w tej samej tabeli co relation, a orderBy zostanie pominięta, zwracany jest błąd.
Jeśli początek okna okaże się przed pierwszym wierszem, zostanie ustawiony na pierwszy wiersz. Podobnie, jeśli koniec okna znajduje się po ostatnim wierszu partycji, zostanie ustawiony na ostatni wiersz.
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.
Jeśli wartość reset jest bezwzględna (tj. dodatnia liczba całkowita HIGHESTPARENT lub odwołanie do pola), a obliczenie jest obliczane na poziomie docelowym lub wyższym w hierarchii, obliczenia są resetowane dla każdego pojedynczego elementu. Oznacza to, że funkcja jest obliczana w ramach partycji zawierającej tylko ten konkretny element.
Przykład 1 — miara
Następująca miara:
3-day Average Price =
AVERAGEX(
WINDOW(
-2,REL,0,REL,
SUMMARIZE(ALLSELECTED('Sales'), 'Date'[Date], 'Product'[Product]),
ORDERBY('Date'[Date]),
KEEP,
PARTITIONBY('Product'[Product])
),
CALCULATE(AVERAGE(Sales[Unit Price]))
)
Zwraca 3-dniową średnią cen jednostkowych dla każdego produktu. Zwróć uwagę, że okno 3-dniowe składa się z trzech dni, w których produkt ma sprzedaż, niekoniecznie trzy kolejne dni kalendarzowe.
Przykład 2 — miara
Następująca miara:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Zwraca sumę bieżącą dla kolumny Total Sales by Month Number Of Year (Łączna sprzedaż według miesiąca numer roku) i jest uruchamiana ponownie dla każdego roku obrachunkowego:
| Rok | Numer miesiąca roku | Kwota sprzedaży | RunningSum |
|---|---|---|---|
| FY2018 | 1 | $1,327,675 | $1,327,675 |
| FY2018 | 2 | $3,936,463 | $5,264,138 |
| FY2018 | 3 | $700,873 | $5,965,011 |
| FY2018 | 100 | $1,519,275 | $7,484,286 |
| FY2018 | 5 | $2,960,378 | $10,444,664 |
| FY2018 | 6 | $1,487,671 | $11,932,336 |
| FY2018 | 7 | $1,423,357 | $13,355,693 |
| FY2018 | 8 | $2,057,902 | $15,413,595 |
| FY2018 | 9 | $2,523,948 | $17,937,543 |
| FY2018 | 10 | $561,681 | $18,499,224 |
| FY2018 | 11 | $4,764,920 | $23,264,145 |
| FY2018 | 12 | $596,747 | $23,860,891 |
| RO2019 | 1 | $1,847,692 | $1,847,692 |
| RO2019 | 2 | $2,829,362 | $4,677,054 |
| RO2019 | 3 | $2,092,434 | $6,769,488 |
| RO2019 | 100 | $2,405,971 | $9,175,459 |
| RO2019 | 5 | $3,459,444 | $12,634,903 |
| RO2019 | 6 | $2,850,649 | $15,485,552 |
| RO2019 | 7 | $2,939,691 | $18,425,243 |
| RO2019 | 8 | $3,964,801 | $22,390,045 |
| RO2019 | 9 | $3,287,606 | $25,677,650 |
| RO2019 | 10 | $2,157,287 | $27,834,938 |
| RO2019 | 11 | $3,611,092 | $31,446,030 |
| RO2019 | 12 | $2,624,078 | $34,070,109 |
| FY2020 | 1 | $3,235,187 | $3,235,187 |
| FY2020 | 2 | $4,070,046 | $7,305,233 |
| FY2020 | 3 | $4,429,833 | $11,735,066 |
| FY2020 | 100 | $4,002,614 | $15,737,680 |
| FY2020 | 5 | $5,265,797 | $21,003,477 |
| FY2020 | 6 | $3,465,241 | $24,468,717 |
| FY2020 | 7 | $3,513,064 | $27,981,781 |
| FY2020 | 8 | $5,247,165 | $33,228,947 |
| FY2020 | 9 | $5,104,088 | $38,333,035 |
| FY2020 | 10 | $3,542,150 | $41,875,184 |
| FY2020 | 11 | $5,151,897 | $47,027,081 |
| FY2020 | 12 | $4,851,194 | $51,878,275 |
Przykład 3 — obliczanie wizualizacji
Następujące obliczenie wizualizacji DAX zapytanie:
TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])
Zwraca skumulowaną łączną sprzedaż według miesiąca obliczoną wraz z każdym rokiem. Można użyć wartości 1 zamiast HIGHESTPARENT, z tym samym wynikiem.
Poniższy zrzut ekranu przedstawia macierz wizualizacji i wyrażenie obliczania wizualizacji:
obliczania wizualizacji
Przykład 4 — obliczanie wizualizacji
Następujące obliczenie wizualizacji DAX zapytanie:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Zwraca skumulowaną łączną sprzedaż według miesiąca obliczoną wzdłuż każdego kwartału.
Wartość LOWESTPARENT można użyć zamiast -1 z tym samym wynikiem.
Powiązana zawartość
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM