WINDOW
Gilt für:Berechnete Spalteberechnete TabelleMeasurevisuelle Berechnung
Gibt mehrere Zeilen zurück, die sich innerhalb des angegebenen Intervalls befinden.
Syntax
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parameter
Begriff | Definition |
---|---|
from |
Gibt an, wo die window beginnt. Dabei kann es sich um einen beliebigen DAX Ausdruck handeln, der einen skalaren valuezurückgibt.
Das Verhalten hängt vom from_type -Parameter ab: - If from_type ist REL, die Anzahl der Zeilen zurück (negative value) or vorwärts (positive value) aus der aktuellen Zeile, um die first Zeile in der windowabzurufen.
- If from_type ist ABS, andfrom ist positiv, dann ist es die Position des Anfangs der window von Anfang der Partition. Die Indizierung erfolgt auf der Basis 1. Beispielsweise bedeutet 1, dass window vom Anfang der Partition beginnt.
If
from ist negativ, dann ist es die Position des Anfangs der window vom Ende der Partition. -1 bedeutet die last Zeile in der Partition. |
from_type |
Ändert das Verhalten des from -Parameters. Mögliche values sind ABS (absolut) and REL (relativ). Die Standardeinstellung lautet REL. |
to |
Identisch mit from , gibt jedoch das Ende der windowan. Die zeile last ist in der windowenthalten. |
to_type |
Identisch mit from_type , ändert aber das Verhalten von to . |
relation |
(Optional) Ein Tabellenausdruck, über den die Ausgabezeilen zurückgegeben werden.
If angegebenen, müssen all Spalten in partitionBy daraus or einer related Tabelle stammen.
If weggelassen: - orderBy muss explizit angegeben werden.- All orderBy andpartitionBy Ausdrücke müssen vollqualifizierte Spaltennamen sein, and aus einer einzelnen Tabelle stammen.
– Standardmäßig werden ALLSELECTED() von all Spalten in orderBy andpartitionBy . |
axis |
(Optional) Eine Achse in der visuellen Form. Nur in visuellen Berechnungen verfügbar, and ersetzt relation . |
orderBy |
(Optional) Eine ORDERBY() Klausel mit den Ausdrücken, die define, wie jede Partition sortiert wird.
If weggelassen: - relation muss explizit angegeben werden.
– Standardmäßig wird jede Spalte in relation sortiert, die bereits in notangegeben partitionBy ist. |
blanks |
(Optional) Eine Aufzählung, die definiert, wie blankvalues beim Sortieren behandelt wird.
Dieser Parameter ist für die zukünftige Verwendung reserviert. Derzeit wird die einzige unterstützte value DEFAULT , wobei das Verhalten für numerische valuesblankvalues zwischen Null and negativen valuessortiert werden. Das Verhalten für Zeichenfolgen wird blankvalues vor all Zeichenfolgen sortiert, einschließlich leerer Zeichenfolgen. |
partitionBy |
(Optional) Eine PARTITIONBY() Klausel, die die Spalten enthält, die define, wie relation partitioniert werden.
If nicht angegeben, wird relation als einzelne Partition behandelt. |
matchBy |
(Optional) Eine MATCHBY() Klausel, die die Spalten enthält, die define, wie Daten übereinstimmen, and die aktuelle Zeile identifizieren. |
reset |
(Optional) Nur in visuellen Berechnungen verfügbar. Gibt an, if die Berechnung zurückgesetzt wird, and auf welcher Ebene der Spaltenhierarchie des visuellen Shapes. Akzeptierte values sind: NONE , LOWESTPARENT , HIGHESTPARENT , or eine ganze Zahl. Das Verhalten hängt von der ganzen Zahl sign: - If Null or weggelassen, die Berechnung wird not zurückgesetzt. Entspricht NONE .
- If positiv, identifiziert die ganze Zahl die Spalte beginnend mit der höchsten, unabhängig von Korn. HIGHESTPARENT entspricht 1.
- If negativ, identifiziert die ganze Zahl die Spalte beginnend vom niedrigsten, relativ zum aktuellen Korn. LOWESTPARENT entspricht -1. |
value zurückgeben
All Zeilen aus der window.
Bemerkungen
Except für Spalten, die von DAX Tabellenfunktionen hinzugefügt werden, muss jede Spalte in relation
, wenn matchBy
not vorhanden ist, or jeder Spalte in matchBy
andpartitionBy
, wenn matchBy
vorhanden ist, über eine entsprechende äußere value verfügen, um define der aktuellen Zeile zu helfen, auf der sie ausgeführt werden soll.
If
from_type
and
to_type
beide über valueABSverfügen, gilt folgendes nur für die partitionBy
Spalten:
- If es genau eine entsprechende äußere Spalte gibt, wird dessen value verwendet.
-
If es keine entsprechende äußere Spalte gibt:
- WINDOW bestimmt firstall Spalten ohne entsprechende äußere Spalte.
- Für jede Kombination vorhandener values für diese Spalten im übergeordneten Kontext WINDOWwird WINDOW ausgewertet, and die entsprechenden Zeilen zurückgegeben werden.
- WINDOW endgültige Ausgabe ist eine union dieser Zeilen.
- If mehr als eine entsprechende äußere Spalte vorhanden ist, wird ein error zurückgegeben.
If
all
relation
Spalten von DAX Tabellenfunktionen hinzugefügt wurden, wird ein error zurückgegeben.
If
matchBy
vorhanden ist, versucht WINDOW, matchBy
andpartitionBy
Spalten zu verwenden, um die Zeile zu identifizieren.
If
matchBy
not vorhanden ist, and die in orderBy
andpartitionBy
angegebenen Spalten nicht eindeutig jede Zeile in relation
identifizieren können, dann:
- WINDOW versucht, die geringste Anzahl zusätzlicher Spalten zu find, die erforderlich sind, um jede Zeile eindeutig zu identifizieren.
-
If diese Spalten gefunden werden können, fügt WINDOW diese neuen Spalten automatisch an
orderBy
an, and jede Partition mithilfe dieser neuen Gruppe von orderBy Spalten sortiert wird. - If diese Spalten nicht gefunden werden können, wird ein error zurückgegeben.
Eine leere Tabelle wird ifzurückgegeben:
- Die entsprechende äußere value einer
orderBy
orpartitionBy
Spalte ist innerhalb notrelation
vorhanden. - Das gesamte window liegt außerhalb der Partition, or der Anfang des window nach dem Ende liegt.
If
WINDOW wird in einer berechneten Spalte verwendet, die in derselben Tabelle wie relation
definiert ist, andorderBy
weggelassen wird, wird ein error zurückgegeben.
If der Anfang des window sich vor der first Zeile herausstellt, wird sie auf die first Zeile festgelegt. Entsprechend wird if ende des window nach der last Zeile der Partition und dann auf die last Zeile festgelegt.
reset
können nur in visuellen Berechnungen verwendet werden, and können nicht in Kombination mit orderBy
orpartitionBy
verwendet werden.
If
reset
vorhanden ist, können axis
angegeben werden, aber relation
können nicht angegeben werden.
Beispiel 1 – measure
Die folgenden 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]))
)
Gibt die 3-dayaverage der Einzelpreise für jede productzurück. Beachten Sie, dass die 3-daywindow aus drei Tagen besteht, in denen die product über Verkäufe verfügt, not notwendigerweise drei aufeinander folgende calendar Tage.
Beispiel 2 – measure
Die folgenden measure:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Gibt die ausgeführte sum für den Gesamtumsatz um Month Anzahl von Yearzurück, die für jede geschäftspolitische Yearneu gestartet wird:
Year | Month Anzahl der Year | Sales Amount | RunningSum |
---|---|---|---|
GJ2018 | 1 | 1.327.675 USD | 1.327.675 USD |
GJ2018 | 2 | 3.936.463 USD | 5.264.138 USD |
GJ2018 | 3 | 700.873 USD | 5.965.011 USD |
GJ2018 | 4 | 1.519.275 USD | 7.484.286 USD |
GJ2018 | 5 | 2.960.378 USD | 10.444.664 USD |
GJ2018 | 6 | 1.487.671 USD | 11.932.336 USD |
GJ2018 | 7 | 1.423.357 USD | 13.355.693 USD |
GJ2018 | 8 | 2.057.902 USD | 15.413.595 USD |
GJ2018 | 9 | 2.523.948 USD | 17.937.543 USD |
GJ2018 | 10 | 561.681 USD | 18.499.224 USD |
GJ2018 | 11 | 4.764.920 USD | 23.264.145 USD |
GJ2018 | 12 | 596.747 USD | 23.860.891 USD |
GJ2019 | 1 | 1.847.692 USD | 1.847.692 USD |
GJ2019 | 2 | 2.829.362 USD | 4.677.054 USD |
GJ2019 | 3 | 2.092.434 USD | 6.769.488 USD |
GJ2019 | 4 | 2.405.971 USD | 9.175.459 USD |
GJ2019 | 5 | 3.459.444 USD | 12.634.903 USD |
GJ2019 | 6 | 2.850.649 USD | 15.485.552 USD |
GJ2019 | 7 | 2.939.691 USD | 18.425.243 USD |
GJ2019 | 8 | 3.964.801 USD | 22.390.045 USD |
GJ2019 | 9 | 3.287.606 USD | 25.677.650 USD |
GJ2019 | 10 | 2.157.287 USD | 27.834.938 USD |
GJ2019 | 11 | 3.611.092 USD | 31.446.030 USD |
GJ2019 | 12 | 2.624.078 USD | 34.070.109 USD |
GJ2020 | 1 | 3.235.187 USD | 3.235.187 USD |
GJ2020 | 2 | 4.070.046 USD | 7.305.233 USD |
GJ2020 | 3 | 4.429.833 USD | 11.735.066 USD |
GJ2020 | 4 | 4.002.614 USD | 15.737.680 USD |
GJ2020 | 5 | 5.265.797 USD | 21.003.477 USD |
GJ2020 | 6 | 3.465.241 USD | 24.468.717 USD |
GJ2020 | 7 | 3.513.064 USD | 27.981.781 USD |
GJ2020 | 8 | 5.247.165 USD | 33.228.947 USD |
GJ2020 | 9 | 5.104.088 USD | 38.333.035 USD |
GJ2020 | 10 | 3.542.150 USD | 41.875.184 USD |
GJ2020 | 11 | 5.151.897 USD | 47.027.081 USD |
GJ2020 | 12 | 4.851.194 USD | 51.878.275 USD |
Beispiel 3 – visuelle Berechnung
Die folgende visuelle Berechnung DAX Abfrage:
TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])
Gibt den kumulierten Gesamtumsatz um monthzurück, berechnet entlang der einzelnen year. Die values 1 and -2 kann anstelle von HIGHESTPARENT
verwendet werden, mit denselben Ergebnissen.
Der folgende Screenshot zeigt die visuelle Matrix and visuellen Berechnungsausdruck:
Beispiel 4 – visuelle Berechnung
Die folgende visuelle Berechnung DAX Abfrage:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Gibt den kumulierten Gesamtumsatz um monthzurück, berechnet entlang der einzelnen quarter.
Related Inhalte
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM