WINDOW
gjelder:beregnet kolonne
beregnet tabell
måle
visualobjektberegning
Returnerer flere rader som er plassert innenfor det angitte intervallet.
Syntaks
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametere
Term | Definisjon |
---|---|
from |
Angir hvor vinduet starter. Det kan være et hvilket som helst DAX uttrykk som returnerer en skalarverdi.
Virkemåten avhenger av from_type -parameteren: – Hvis from_type er REL, antall rader som skal gå tilbake (negativ verdi) eller fremover (positiv verdi) fra gjeldende rad for å få den første raden i vinduet.
– Hvis from_type er ABS, og from er positiv, er det posisjonen til starten av vinduet fra begynnelsen av partisjonen. Indeksering er 1-basert og 0 tolkes som 1. 0 og 1 betyr for eksempel at vinduet starter fra begynnelsen av partisjonen. Hvis from er negativ, er det posisjonen til starten av vinduet fra slutten av partisjonen. -1 betyr den siste raden i partisjonen. |
from_type |
Endrer virkemåten til from -parameteren. Mulige verdier er ABS (absolutt) og REL (relativ). Standard er REL. |
to |
Samme som from , men angir slutten av vinduet. Den siste raden er inkludert i vinduet. |
to_type |
Samme som from_type , men endrer virkemåten til to . |
relation |
(Valgfritt) Et tabelluttrykk som utdataradene returneres fra.
Hvis angitt, må alle kolonnene i partitionBy komme fra den eller en relatert tabell.
Hvis utelatt: - orderBy må angis eksplisitt.– Alle orderBy - og partitionBy uttrykk må være fullstendige kolonnenavn og komme fra én enkelt tabell.
– standarder for ALLSELECTED() for alle kolonner i orderBy og partitionBy . |
axis |
(Valgfritt) En akse i den visuelle figuren. Bare tilgjengelig i visuelle beregninger, og erstatter relation . |
orderBy |
(Valgfritt) En ORDERBY() setning som inneholder uttrykkene som definerer hvordan hver partisjon sorteres.
Hvis utelatt: - relation må angis eksplisitt.
– Standarder for bestilling av hver kolonne i relation som ikke allerede er angitt i partitionBy . |
blanks |
(Valgfritt) En opplisting som definerer hvordan du håndterer tomme verdier når du sorterer relation eller axis .
De støttede verdiene er:
Obs! Når blanks parameteren og tomrommene i ORDERBY()-funksjonen på individuelle uttrykk er angitt, prioriteres blanks enkelt orderBy-uttrykk for det relevante orderBy-uttrykket, og orderBy-uttrykk uten at blanks angis, respekterer blanks parameteren for den overordnede funksjonen. |
partitionBy |
(Valgfritt) En PARTITIONBY() setningsdel som inneholder kolonnene som definerer hvordan relation partisjoneres. Hvis utelatt, behandles relation som én enkelt partisjon. |
matchBy |
(Valgfritt) En MATCHBY() setningsdel som inneholder kolonnene som definerer hvordan dataene skal samsvare og identifisere gjeldende rad. |
reset |
(Valgfritt) Bare tilgjengelig i visuelle beregninger. Angir om beregningen tilbakestilles, og på hvilket nivå i kolonnehierarkiet for visualobjektfiguren. Godtatte verdier er: en feltreferanse til en kolonne i gjeldende visuelle figur, NONE (standard), LOWESTPARENT , HIGHESTPARENT eller et heltall. Virkemåten avhenger av heltallstegnet: – Hvis null eller utelatt, tilbakestilles ikke beregningen. Tilsvarer NONE .
– Hvis det er positivt, identifiserer heltallet kolonnen fra den høyeste, uavhengige av korn. HIGHESTPARENT tilsvarer 1.
– Hvis negativt, identifiserer heltallet kolonnen fra det laveste, i forhold til gjeldende korn. LOWESTPARENT tilsvarer -1. |
Returverdi
Alle rader fra vinduet.
Merknader
Bortsett fra kolonner som legges til av DAX tabellfunksjoner, må hver kolonne i relation
, når matchBy
ikke finnes, eller hver kolonne i matchBy
og partitionBy
, når matchBy
finnes, ha en tilsvarende ytre verdi for å definere gjeldende rad som skal brukes. Hvis from_type
og to_type
begge har ABS, gjelder følgende bare for de partitionBy
kolonnene:
- Hvis det er nøyaktig én tilsvarende ytre kolonne, brukes verdien.
- Hvis det ikke finnes noen tilsvarende ytre kolonne:
- WINDOW bestemmer først alle kolonner som ikke har noen tilsvarende ytre kolonne.
- For hver kombinasjon av eksisterende verdier for disse kolonnene i WINDOWoverordnede kontekst, evalueres WINDOW, og de tilsvarende radene returneres.
- WINDOW endelige utdataene er en sammensluting av disse radene.
- Hvis det er mer enn én tilsvarende ytre kolonne, returneres en feil.
Hvis alle kolonnene i relation
ble lagt til av DAX tabellfunksjoner, returneres en feil.
Hvis matchBy
finnes, prøver WINDOW å bruke matchBy
og partitionBy
kolonner til å identifisere raden.
Hvis matchBy
ikke finnes, og kolonnene som er angitt i orderBy
og partitionBy
ikke kan identifisere hver rad i relation
unikt, så:
- WINDOW vil prøve å finne det minste antallet ekstra kolonner som kreves for å identifisere hver rad unikt.
- Hvis du finner slike kolonner, vil WINDOW automatisk tilføye disse nye kolonnene til
orderBy
, og hver partisjon sorteres ved hjelp av dette nye settet med orderBy-kolonner. - Hvis slike kolonner ikke blir funnet, returneres en feil.
En tom tabell returneres hvis:
- Den tilsvarende ytre verdien for en
orderBy
ellerpartitionBy
kolonne finnes ikke irelation
. - Hele vinduet er utenfor partisjonen, eller begynnelsen av vinduet er etter slutten.
Hvis WINDOW brukes i en beregnet kolonne som er definert i samme tabell som relation
, og orderBy
utelates, returneres en feil.
Hvis begynnelsen av vinduet viser seg å være før den første raden, er den satt til den første raden. På samme måte, hvis slutten av vinduet er etter den siste raden i partisjonen, er den satt til den siste raden.
reset
kan bare brukes i visuelle beregninger, og kan ikke brukes sammen med orderBy
eller partitionBy
. Hvis reset
finnes, kan axis
angis, men relation
kan ikke.
Eksempel 1 – mål
Følgende mål:
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]))
)
Returnerer 3-dagers gjennomsnittet av enhetspriser for hvert produkt. Vær oppmerksom på at 3-dagersvinduet består av tre dager der produktet har salg, ikke nødvendigvis tre påfølgende kalenderdager.
Eksempel 2 – mål
Følgende mål:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Returnerer løpende sum for totalt salg etter månedsnummer, og starter på nytt for hvert regnskapsår:
År | Månedsnummer for år | Salgsbeløp | Løpesummer |
---|---|---|---|
FY2018 | 1 | $1,327,675 | $1,327,675 |
FY2018 | 2 | $3,936,463 | KR 5 264 138 |
FY2018 | 3 | $700,873 | KR 5 965 011 |
FY2018 | 4 | $1,519,275 | $7,484,286 |
FY2018 | 5 | KR 2 960 378 | KR 10 444 664 |
FY2018 | 6 | $1,487,671 | KR 11 932 336 |
FY2018 | 7 | $1,423,357 | KR 13 355 693 |
FY2018 | 8 | KR 2 057 902 | $15,413,595 |
FY2018 | 9 | KR 2 523 948 | $17,937,543 |
FY2018 | 10 | $561,681 | KR 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 | KR 2 092 434 | $6,769,488 |
FY2019 | 4 | $2,405,971 | KR 9 175 459 |
FY2019 | 5 | $3,459,444 | $12,634,903 |
FY2019 | 6 | KR 2 850 649 | $15,485,552 |
FY2019 | 7 | $2,939,691 | $18,425,243 |
FY2019 | 8 | $3,964,801 | KR 22 390 045 |
FY2019 | 9 | $3,287,606 | $25,677,650 |
FY2019 | 10 | KR 2 157 287 | KR 27 834 938 |
FY2019 | 11 | $3,611,092 | KR 31 446 030 |
FY2019 | 12 | KR 2 624 078 | KR 34 070 109 |
REGNSKAPSÅR2020 | 1 | $3,235,187 | $3,235,187 |
REGNSKAPSÅR2020 | 2 | KR 4 070 046 | $7,305,233 |
REGNSKAPSÅR2020 | 3 | $4,429,833 | KR 11 735 066 |
REGNSKAPSÅR2020 | 4 | KR 4 002 614 | $15,737,680 |
REGNSKAPSÅR2020 | 5 | $5,265,797 | KR 21 003 477 |
REGNSKAPSÅR2020 | 6 | $3,465,241 | KR 24 468 717 |
REGNSKAPSÅR2020 | 7 | $3,513,064 | $27,981,781 |
REGNSKAPSÅR2020 | 8 | $5,247,165 | KR 33 228 947 |
REGNSKAPSÅR2020 | 9 | KR 5 104 088 | KR 38 333 035 |
REGNSKAPSÅR2020 | 10 | $3,542,150 | $41,875,184 |
REGNSKAPSÅR2020 | 11 | KR 5 151 897 | KR 47 027 081 |
REGNSKAPSÅR2020 | 12 | $4,851,194 | $51,878,275 |
Eksempel 3 – visuell beregning
Følgende visuelle beregning DAX spørring:
TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])
Returnerer det kumulative totale salget etter måned, beregnet sammen hvert år. Verdiene 1 og -2 kan brukes i stedet for HIGHESTPARENT
, med de samme resultatene.
Skjermbildet nedenfor viser den visuelle matrisen og beregningsuttrykket for visualobjekter:
Eksempel 4 – visuell beregning
Følgende visuelle beregning DAX spørring:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Returnerer det kumulative totale salget etter måned, beregnet langs hvert kvartal.
Relatert innhold
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM