WINDOW
Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia 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 rozpoczyna się window. Może to być dowolne wyrażenie DAX zwracające valueskalarne .
Zachowanie zależy od parametru from_type : — If from_type to REL, liczba wierszy do powrotu (ujemna value) or do przodu (dodatnia value) z bieżącego wiersza w celu pobrania wiersza first w window.
— If from_type jest ABS, andfrom jest dodatnia, a następnie jest to pozycja początku window od początku partycji. Indeksowanie jest oparte na 1. Na przykład 1 oznacza, że window zaczyna się od początku partycji.
If
from jest ujemna, to pozycja początku window od końca partycji. -1 oznacza wiersz last w partycji. |
from_type |
Modyfikuje zachowanie parametru from . Możliwe values są ABS (bezwzględne) and REL (względne). Wartość domyślna to REL. |
to |
Taki sam jak from , ale wskazuje koniec window. Wiersz last znajduje się w window. |
to_type |
Tak samo jak from_type , ale modyfikuje zachowanie to . |
relation |
(Opcjonalnie) Wyrażenie tabeli, z którego są zwracane wiersze wyjściowe.
If określone kolumny all w partitionBy muszą pochodzić z niej or tabeli related.
If pominięty: - orderBy należy jawnie określić.— wyrażenia All orderBy andpartitionBy muszą być w pełni kwalifikowane nazwy kolumn, and pochodzą z jednej tabeli.
— domyślnie ALLSELECTED() kolumn all w orderBy andpartitionBy . |
axis |
(Opcjonalnie) Oś w kształcie wizualizacji. Dostępne tylko w obliczeniach wizualnych and zastępuje relation . |
orderBy |
(Opcjonalnie) Klauzula ORDERBY() zawierająca wyrażenia, które define sposób sortowania każdej partycji.
If pominięty: - relation należy jawnie określić.
— domyślnie kolejność według każdej kolumny w relation , która jest not już określona w partitionBy . |
blanks |
(Opcjonalnie) Wyliczenie, które definiuje sposób obsługi blankvalues podczas sortowania.
Ten parametr jest zarezerwowany do użytku w przyszłości. obecnie jedyną obsługiwaną value jest DEFAULT , gdzie zachowanie values liczbowych blankvalues jest uporządkowane między and ujemną and ujemną . Zachowanie ciągów jest blankvalues są uporządkowane przed all ciągami, w tym pustymi ciągami. |
partitionBy |
(Opcjonalnie) Klauzula PARTITIONBY() zawierająca kolumny, które define sposób partycjonowania relation .
If pominięty, relation jest traktowana jako pojedyncza partycja. |
matchBy |
(Opcjonalnie) Klauzula MATCHBY() zawierająca kolumny, które define, jak dopasować dane and zidentyfikować bieżący wiersz. |
reset |
(Opcjonalnie) Dostępne tylko w obliczeniach wizualnych. Wskazuje if resetowania obliczeń, and na jakim poziomie hierarchii kolumn kształtu wizualizacji. Zaakceptowane values to: NONE , LOWESTPARENT , HIGHESTPARENT , or liczba całkowita. Zachowanie zależy od liczby całkowitej sign: — If zero or pominięte, obliczenie not zresetować. Odpowiednik NONE .
— If dodatnia liczba całkowita identyfikuje kolumnę rozpoczynającą się od najwyższego, niezależnego od ziarna. HIGHESTPARENT jest równoważne 1.
— If ujemna liczba całkowita identyfikuje kolumnę rozpoczynającą się od najniższego względem bieżącego ziarna. LOWESTPARENT jest równoważne -1. |
Zwracanie value
All wierszy z window.
Uwagi
Except dla kolumn dodanych przez funkcje tabeli DAX każda kolumna w relation
, gdy matchBy
jest not obecna, or każdej kolumny w matchBy
andpartitionBy
, gdy matchBy
jest obecny, musi mieć odpowiednie value zewnętrzne, aby ułatwić define bieżącego wiersza, na którym ma działać.
If
from_type
and
to_type
obie mają valueABS, a następnie następujące dotyczą tylko kolumn partitionBy
:
- If jest dokładnie jedna odpowiadająca kolumnie zewnętrznej, używana jest jego value.
-
If nie ma odpowiedniej kolumny zewnętrznej:
- WINDOW first określić kolumny all, które nie mają odpowiedniej kolumny zewnętrznej.
- Dla każdej kombinacji istniejących values dla tych kolumn w kontekście nadrzędnym WINDOWWINDOW jest obliczana, and zwracane są odpowiednie wiersze.
- WINDOW końcowych danych wyjściowych jest union tych wierszy.
- If istnieje więcej niż jedna odpowiadająca mu kolumna zewnętrzna, zwracana jest error.
If
all kolumn relation
zostały dodane przez funkcje tabeli DAX, zwracana jest error.
If
matchBy
jest obecny, WINDOW spróbuje użyć kolumn matchBy
andpartitionBy
do zidentyfikowania wiersza.
If
matchBy
not
and kolumn określonych w orderBy
andpartitionBy
nie można jednoznacznie zidentyfikować każdego wiersza w relation
, a następnie:
- WINDOW spróbuje find najmniejszą liczbę dodatkowych kolumn wymaganych do unikatowego zidentyfikowania każdego wiersza.
-
If można znaleźć takie kolumny, WINDOW automatycznie dołączy te nowe kolumny do
orderBy
, and każda partycja zostanie posortowana przy użyciu tego nowego zestawu kolumn orderBy. - If nie można odnaleźć takich kolumn, zwracana jest error.
Pusta tabela jest zwracana if:
- Odpowiadająca zewnętrzna value kolumny
orderBy
orpartitionBy
not istnieje wrelation
. - Cała window znajduje się poza partycją, or początku window znajduje się po jego zakończeniu.
If
WINDOW jest używana w kolumnie obliczeniowej zdefiniowanej w tej samej tabeli co relation
, andorderBy
zostanie pominięta, zwracany jest error.
If początku window okazuje się być przed wierszem first, a następnie jest ustawiony na wiersz first. Podobnie if koniec window znajduje się po wierszu last partycji, a następnie jest ustawiony na wiersz last.
reset
można używać tylko w obliczeniach wizualnych, and nie można używać w połączeniu z orderBy
orpartitionBy
.
If
reset
jest obecny, axis
można określić, ale nie można relation
.
Przykład 1 — measure
Następujące measure:
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-dayaverage cen jednostkowych dla każdego product. Należy pamiętać, że 3-daywindow składa się z trzech dni, w których product ma sprzedaż, not koniecznie trzy kolejne calendar dni.
Przykład 2 — measure
Następujące measure:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Zwraca uruchomioną sum dla wartości Total Sales by Month Number Of Year( ponowne uruchomienie dla każdego Yearfiscal :
Year | Month liczba Year | 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 month, obliczoną wzdłuż każdej year. Można użyć values 1 and -2 zamiast HIGHESTPARENT
, z tymi samymi wynikami.
Poniższy zrzut ekranu przedstawia macierz wizualizacji and wyrażeniu 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 month, obliczoną wzdłuż każdej quarter.
Related zawartości
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM