OKNO
Dotyczy: Obliczanie kolumny obliczeniowejtabeliobliczeniowej Miarawizualizacji
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 |
---|---|
z | Wskazuje, gdzie jest uruchamiane okno. Może to być dowolne wyrażenie języka DAX zwracające wartość skalarną. Zachowanie zależy od parametru <from_type> : — jeśli <from_type> to 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 i <od> jest dodatni, to jest to pozycja początku okna od początku partycji. Indeksowanie jest oparte na 1. Na przykład 1 oznacza, że okno rozpoczyna się od początku partycji. Jeśli <wartość 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. |
na wartość | Tak samo jak <w przypadku elementu from>, ale wskazuje koniec okna. Ostatni wiersz znajduje się w oknie. |
to_type | Tak samo jak <from_type>, ale modyfikuje zachowanie <elementu .> |
Relacji | (Opcjonalnie) Wyrażenie tabeli, z którego są zwracane wiersze wyjściowe. Jeśli zostanie określony, wszystkie kolumny w <partycjiBy> muszą pochodzić z niej lub powiązanej tabeli. Jeśli pominięto: - <orderBy> musi być jawnie określony.— Wszystkie <wyrażenia orderBy> i <partitionBy> muszą być w pełni kwalifikowane nazwy kolumn 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 wyrażenia 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. Ten parametr jest zarezerwowany do użytku w przyszłości. Obecnie jedyną obsługiwaną wartością jest DEFAULT, 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. |
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
Wszystkie wiersze z okna.
Uwagi
Z wyjątkiem kolumn dodanych przez funkcje tabeli języka DAX, każda kolumna w relacji, gdy <funkcja matchBy nie jest obecna, lub każda kolumna w <kolumnach matchBy>> i <partitionBy<>, gdy element matchBy> jest obecny, musi mieć odpowiednią wartość zewnętrzną, aby ułatwić zdefiniowanie bieżącego wiersza, na którym ma być wykonywane działanie.>< Jeśli 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:
- Okno 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 okna jest obliczana wartość WINDOW, a odpowiednie wiersze są zwracane.
- Końcowe dane wyjściowe okna to połączenie tych wierszy.
- Jeśli istnieje więcej niż jedna odpowiadająca kolumna zewnętrzna, zwracany jest błąd.
Jeśli wszystkie <kolumny relacji> zostały dodane przez funkcje tabeli języka DAX, zwracany jest błąd.
Jeśli <element matchBy> jest obecny, funkcja WINDOW spróbuje użyć <kolumn matchBy> i <partitionBy> w celu zidentyfikowania wiersza.
Jeśli <element matchBy> nie jest obecny, a kolumny określone w kolumnach <orderBy> i <partitionBy> nie mogą jednoznacznie identyfikować każdego wiersza w <relacji>, wówczas:
- W oknie zostanie podjęta próba znalezienia najmniejszej liczby dodatkowych kolumn wymaganych do unikatowego zidentyfikowania każdego wiersza.
- Jeśli takie kolumny można znaleźć, funkcja WINDOW automatycznie dołączy te nowe kolumny do <kolumn 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 orderBy> lub <partitionBy> nie istnieje w ramach <relacji>.
- Całe okno znajduje się poza partycją lub początek okna znajduje się po jego zakończeniu.
Jeśli funkcja WINDOW jest używana w kolumnie obliczeniowej zdefiniowanej w tej samej tabeli co <relacja, a <element orderBy> zostanie pominięty, 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.
<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 — 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:
Year (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 zapytanie języka DAX do obliczeń wizualnych:
TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])
Zwraca skumulowaną łączną sprzedaż według miesiąca obliczoną wraz z każdym rokiem. Wartości 1 i -2 można użyć zamiast WARTOŚCI HIGHESTPARENT, z tymi samymi wynikami.
Poniższy zrzut ekranu przedstawia macierz wizualizacji i wyrażenie obliczania wizualizacji:
Przykład 4 — obliczanie wizualizacji
Następujące zapytanie języka DAX do obliczeń wizualnych:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Zwraca skumulowaną łączną sprzedaż według miesiąca obliczoną wzdłuż każdego kwartału.
Powiązana zawartość
INDEKS
MOVINGAVERAGE
PRZESUNIĘCIE
ORDERBY
PARTYCJONOWANIE WG
ZAKRES
RANK
WIERSZNUMBERRUNNINGSUM
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla