Del via


WINDOW

gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning

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 window starter. Det kan være et hvilket som helst DAX uttrykk som returnerer en skalar value.
Virkemåten avhenger av from_type-parameteren:
- Iffrom_type er REL, antall rader som skal gå tilbake (negative value) or fremover (positive value) fra gjeldende rad for å få first rad i window.
- Iffrom_type er ABS, andfrom er positiv, så er det plasseringen av starten på window fra begynnelsen av partisjonen. Indeksering er 1-basert. 1 betyr for eksempel at window starter fra begynnelsen av partisjonen. If from er negativ, er det posisjonen til starten av window fra slutten av partisjonen. -1 betyr last rad i partisjonen.
from_type Endrer virkemåten til from-parameteren. Mulige values er ABS (absolutt) and REL (relativ). Standard er REL.
to Samme som from, men angir slutten av window. Den last raden er inkludert i window.
to_type Samme som from_type, men endrer virkemåten til to.
relation (Valgfritt) Et tabelluttrykk som utdataradene returneres fra.
If angitt, må all kolonner i partitionBy komme fra den or en related tabell.
If utelatt:
- orderBy må angis eksplisitt.
– AllorderByandpartitionBy uttrykk må være fullstendige kolonnenavn and kommer fra én enkelt tabell.
– standarder for ALLSELECTED() av all kolonner i orderByandpartitionBy.
axis (Valgfritt) En akse i den visuelle figuren. and er bare tilgjengelig i visuelle beregninger, erstatter relation.
orderBy (Valgfritt) En ORDERBY() setningsdel som inneholder uttrykkene som define hvordan hver partisjon sorteres.
If utelatt:
- relation må angis eksplisitt.
– Standarder for å bestille etter hver kolonne i relation som allerede er not angitt i partitionBy.
blanks (Valgfritt) En opplisting som definerer hvordan du håndterer blankvalues når du sorterer.
Denne parameteren er reservert for fremtidig bruk.
Foreløpig er den eneste støttede valueDEFAULT, der virkemåten for numeriske values er blankvalues ordnes mellom null and negativ values. Virkemåten for strenger er blankvalues ordnes før all strenger, inkludert tomme strenger.
partitionBy (Valgfritt) En PARTITIONBY() setningsdel som inneholder kolonnene som define hvordan relation partisjoneres. If utelatt behandles relation som én enkelt partisjon.
matchBy (Valgfritt) En MATCHBY() setningsdel som inneholder kolonnene som define hvordan data samsvarer and identifisere gjeldende rad.
reset (Valgfritt) Bare tilgjengelig i visuelle beregninger. Angir if beregningen tilbakestilles, and på hvilket nivå i kolonnehierarkiet for visualobjektfiguren. Godtatt values er: en feltreferanse til en kolonne i gjeldende visuelle figur, NONE (standard), LOWESTPARENT, HIGHESTPARENT, or et heltall. Virkemåten avhenger av heltallet sign:
- If null or utelatt, tilbakestilles beregningen not. Tilsvarer NONE.
– If positivt identifiserer heltallet kolonnen som starter fra den høyeste, uavhengige av korn. HIGHESTPARENT tilsvarer 1.
– If negativ, identifiserer heltallet kolonnen fra det laveste, i forhold til gjeldende korn. LOWESTPARENT tilsvarer -1.

Returner value

All rader fra window.

Merknader

Except for kolonner som legges til av DAX tabellfunksjoner, må hver kolonne i relation, når matchBy er not til stede, or hver kolonne i matchByandpartitionBy, når matchBy finnes, ha en tilsvarende ytre value for å define gjeldende raden du vil fungere på. If from_type and to_type begge har valueABS, gjelder følgende bare for partitionBy kolonner:

  • If det er nøyaktig én tilsvarende ytre kolonne, brukes value.
  • If det ikke finnes noen tilsvarende ytre kolonne:
    • WINDOW vil first bestemme all kolonner som ikke har noen tilsvarende ytre kolonne.
    • For hver kombinasjon av eksisterende values for disse kolonnene i WINDOWoverordnede kontekst, evalueres WINDOW, and tilsvarende rader returneres.
    • WINDOW endelige utdataene er en union av disse radene.
  • If det er mer enn én tilsvarende ytre kolonne, returneres en error.

If all av kolonnene i relationble lagt til av DAX tabellfunksjoner, returneres en error.

If matchBy finnes, prøver WINDOW å bruke matchByandpartitionBy kolonner til å identifisere raden. If matchBy finnes notand kolonnene som er angitt i orderByandpartitionBy, kan ikke identifisere hver rad i relationunikt, og deretter:

  • WINDOW vil prøve å find det minste antallet ekstra kolonner som kreves for å identifisere hver rad unikt.
  • If slike kolonner finnes, vil WINDOW automatisk føye til disse nye kolonnene i orderBy, and hver partisjon sorteres ved hjelp av dette nye settet med orderBy kolonner.
  • If slike kolonner ikke finnes, returneres en error.

En tom tabell returneres if:

  • Den tilsvarende ytre value i en orderByorpartitionBy kolonne finnes not i relation.
  • Hele window er utenfor partisjonen, or begynnelsen av window er etter slutten.

If WINDOW brukes i en beregnet kolonne som er definert i samme tabell som relation, utelates andorderBy, returneres en error.

If begynnelsen av window viser seg å være før first raden, er den satt til first rad. På samme måte if slutten av window er etter den last raden i partisjonen, er den satt til last rad.

reset bare kan brukes i visuelle beregninger, kan and ikke brukes i kombinasjon med orderByorpartitionBy. If reset finnes, kan axis angis, men relation kan ikke.

Eksempel 1 - measure

Følgende 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]))
)

Returnerer 3-dayaverage av enhetspriser for hver product. Legg merke til at 3-daywindow består av tre dager der product har salg, not nødvendigvis tre påfølgende calendar dager.

Eksempel 2 - measure

Følgende measure:

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 Month antall Year, og starter på nytt for hver Year:

Year Month antall Year Salgsbeløp RunningSum
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 akkumulerte totale salget etter month, beregnet langs hver year. values 1 and -2 kan brukes i stedet for HIGHESTPARENT, med de samme resultatene.

Skjermbildet nedenfor viser den visuelle matrisen and beregningsuttrykket for visualobjekter:

DAX beregning av visualobjekter

Eksempel 4 – visuell beregning

Følgende visuelle beregning DAX spørring:

TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])

Returnerer det akkumulerte totale salget etter month, beregnet langs hver quarter.

INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM