Freigeben über


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:
- Iffrom_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.
- Iffrom_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.
- AllorderByandpartitionBy Ausdrücke müssen vollqualifizierte Spaltennamen sein, and aus einer einzelnen Tabelle stammen.
– Standardmäßig werden ALLSELECTED() von all Spalten in orderByandpartitionBy.
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 valueDEFAULT, 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 matchBynot vorhanden ist, or jeder Spalte in matchByandpartitionBy, 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 relationSpalten von DAX Tabellenfunktionen hinzugefügt wurden, wird ein error zurückgegeben.

If matchBy vorhanden ist, versucht WINDOW, matchByandpartitionBy Spalten zu verwenden, um die Zeile zu identifizieren. If matchBy not vorhanden ist, and die in orderByandpartitionBy angegebenen Spalten nicht eindeutig jede Zeile in relationidentifizieren 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 orderByan, 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 orderByorpartitionBy 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 relationdefiniert 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 orderByorpartitionByverwendet 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 HIGHESTPARENTverwendet werden, mit denselben Ergebnissen.

Der folgende Screenshot zeigt die visuelle Matrix and visuellen Berechnungsausdruck:

DAX visuelle Berechnung

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.

INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM