FÖNSTER
Gäller för: Beräknad kolumn Beräknad tabell Mått Visuell beräkning
Returnerar flera rader som är placerade inom det angivna intervallet.
Syntax
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametrar
Period | Definition |
---|---|
from | Anger var fönstret startar. Det kan vara alla DAX-uttryck som returnerar ett skalärt värde. Beteendet beror på parametern <from_type> : – Om <from_type> är REL, antalet rader som ska gå tillbaka (negativt värde) eller framåt (positivt värde) från den aktuella raden för att få den första raden i fönstret. - Om <from_type> är ABS, och <från> är positiv, är det positionen för början av fönstret från början av partitionen. Indexering är 1-baserad. Till exempel innebär 1 att fönstret börjar från början av partitionen. Om <från> är negativt är det positionen för början av fönstret från slutet av partitionen. -1 innebär den sista raden i partitionen. |
from_type | Ändrar beteendet för parametern <from> . Möjliga värden är ABS (absolut) och REL (relativ). Standardvärdet är REL. |
to | Samma som <från>, men anger slutet av fönstret. Den sista raden ingår i fönstret. |
to_type | Samma som <from_type>, men ändrar beteendet <för till>. |
relation | (Valfritt) Ett tabelluttryck som utdataraderna returneras från. Om det anges måste alla kolumner i <partitionBy> komma från den eller en relaterad tabell. Om det utelämnas: – <orderBy> måste anges uttryckligen. – Alla <orderBy> - och <partitionBy-uttryck> måste vara fullständigt kvalificerade kolumnnamn och komma från en enda tabell. – Standardvärdet är ALLSELECTED() för alla kolumner i <orderBy> och <partitionBy>. |
axel | (Valfritt) En axel i den visuella formen. Endast tillgängligt i visuella beräkningar och ersätter <relationen>. |
orderBy | (Valfritt) En ORDERBY()-sats som innehåller de uttryck som definierar hur varje partition sorteras. Om det utelämnas: – <måste relationen> uttryckligen anges. – Standardinställningen är att sortera efter varje kolumn i <relation> som inte redan har angetts i <partitionBy>. |
Blanksteg | (Valfritt) En uppräkning som definierar hur tomma värden ska hanteras vid sortering. Den här parametern är reserverad för framtida användning. För närvarande är det enda värde som stöds STANDARD, där beteendet för numeriska värden är tomma värden sorteras mellan noll och negativa värden. Beteendet för strängar är tomma värden sorteras före alla strängar, inklusive tomma strängar. |
partitionBy | (Valfritt) En PARTITIONBY()-sats som innehåller kolumnerna som definierar hur <relationen> partitioneras. Om den utelämnas <behandlas relationen> som en enda partition. |
matchBy | (Valfritt) En MATCHBY()-sats som innehåller kolumnerna som definierar hur du matchar data och identifierar den aktuella raden. |
nollställa | (Valfritt) Endast tillgängligt i visuella beräkningar. Anger om beräkningen återställs och på vilken nivå av den visuella formens kolumnhierarki. Godkända värden är: NONE, LOWESTPARENT, HIGHESTPARENT eller ett heltal. Beteendet beror på heltalstecknet: – Om noll eller utelämnas återställs inte beräkningen. Motsvarar NONE. – Om det är positivt identifierar heltal kolumnen med början från den högsta, oberoende av kornighet. HIGHESTPARENT motsvarar 1. – Om det är negativt identifierar heltal kolumnen med början från den lägsta, i förhållande till det aktuella kornet. LOWESTPARENT motsvarar -1. |
Returvärde
Alla rader från fönstret.
Kommentarer
Förutom kolumner som läggs till av DAX-tabellfunktioner måste varje kolumn i <relation, när <matchBy> inte finns, eller varje kolumn i <matchBy> och <partitionBy>, när <matchBy> finns, ha ett motsvarande yttre värde för att definiera den aktuella raden> som ska användas. Om from_type och to_type> båda har värdet ABS gäller följande endast för partitionBy-kolumnerna:> <<> <
- Om det finns exakt en motsvarande yttre kolumn används dess värde.
- Om det inte finns någon motsvarande yttre kolumn:
- WINDOW avgör först alla kolumner som inte har någon motsvarande yttre kolumn.
- För varje kombination av befintliga värden för dessa kolumner i WINDOW:s överordnade kontext utvärderas WINDOW och motsvarande rader returneras.
- WINDOW-slututdata är en union av dessa rader.
- Om det finns mer än en motsvarande yttre kolumn returneras ett fel.
Om alla <relationers> kolumner har lagts till av DAX-tabellfunktioner returneras ett fel.
Om <matchBy> finns försöker WINDOW använda <kolumnerna matchBy> och <partitionBy> för att identifiera raden.
Om <matchBy> inte finns och kolumnerna som anges i <orderBy> och <partitionBy> inte unikt kan identifiera varje rad i <relation>:
- WINDOW försöker hitta det minsta antalet ytterligare kolumner som krävs för att unikt identifiera varje rad.
- Om sådana kolumner kan hittas lägger WINDOW automatiskt till dessa nya kolumner i <orderBy>, och varje partition sorteras med den här nya uppsättningen orderBy-kolumner.
- Om det inte går att hitta sådana kolumner returneras ett fel.
En tom tabell returneras om:
- Motsvarande yttre värde för kolumnen orderBy> eller <partitionBy> finns inte i <relationen>.<
- Hela fönstret ligger utanför partitionen, eller så är början av fönstret efter att det har avslutats.
Om WINDOW används i en beräknad kolumn som definierats i samma tabell som <relationen>, och <orderBy> utelämnas, returneras ett fel.
Om början av fönstret visar sig vara före den första raden är den inställd på den första raden. På samma sätt, om slutet av fönstret är efter den sista raden i partitionen, är den inställd på den sista raden.
<reset> kan endast användas i visuella beräkningar och kan inte användas i kombination med <orderBy> eller <partitionBy>. Om <det finns en återställning> kan axeln> anges, <men <det går inte att göra det>.
Exempel 1 – mått
Följande mått:
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]))
)
Returnerar 3-dagars genomsnitt för enhetspriser för varje produkt. Observera att 3-dagarsfönstret består av tre dagar då produkten har försäljning, inte nödvändigtvis tre kalenderdagar i följd.
Exempel 2 – mått
Följande mått:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Returnerar den löpande summan för total försäljning per månadsnummer och startar om för varje räkenskapsår:
Year | Månadens antal år | Försäljningsbelopp | 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 | 4 | $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 |
FY2019 | 1 | $1,847,692 | $1,847,692 |
FY2019 | 2 | $2,829,362 | $4,677,054 |
FY2019 | 3 | $2,092,434 | $6,769,488 |
FY2019 | 4 | $2,405,971 | $9,175,459 |
FY2019 | 5 | $3,459,444 | $12,634,903 |
FY2019 | 6 | $2,850,649 | $15,485,552 |
FY2019 | 7 | $2,939,691 | $18,425,243 |
FY2019 | 8 | $3,964,801 | $22,390,045 |
FY2019 | 9 | $3,287,606 | $25,677,650 |
FY2019 | 10 | $2,157,287 | $27,834,938 |
FY2019 | 11 | $3,611,092 | $31,446,030 |
FY2019 | 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 | 4 | $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 |
Exempel 3 – visuell beräkning
Följande DAX-fråga för visuell beräkning:
TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])
Returnerar den kumulativa totala försäljningen per månad, beräknad längs varje år. Värdena 1 och -2 kan användas i stället för HIGHESTPARENT, med samma resultat.
Skärmbilden nedan visar den visuella matrisen och det visuella beräkningsuttrycket:
Exempel 4 – visuell beräkning
Följande DAX-fråga för visuell beräkning:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Returnerar den ackumulerade totala försäljningen per månad, beräknad längs varje kvartal.
Relaterat innehåll
INDEX
MOVINGAVERAGE
UPPVÄGA
ORDERBY
PARTITIONBY
SORTIMENT
RANG
ROWNUMBERRUNNINGSUM