Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Gælder for:
Beregnet kolonne
Beregnet tabel
Måle
Visuel beregning
Returnerer flere rækker, der er placeret inden for det angivne interval.
Syntaks
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametre
| Begreb | Definition |
|---|---|
from |
Angiver, hvor vinduet starter. Det kan være et hvilket som helst DAX udtryk, der returnerer en skalarværdi.
Funktionsmåden afhænger af parameteren from_type: – Hvis from_type er REL, er det antal rækker, der skal gå tilbage (negativ værdi) eller fremad (positiv værdi) fra den aktuelle række for at hente den første række i vinduet.
- Hvis from_type er ABS, og from er positiv, er det placeringen af starten af vinduet fra starten af partitionen. Indeksering er 1-baseret, og 0 fortolkes som 1. 0 og 1 betyder f.eks., at vinduet starter fra starten af partitionen. Hvis from er negativ, er det placeringen af starten af vinduet fra slutningen af partitionen. -1 betyder den sidste række i partitionen. |
from_type |
Ændrer funktionsmåden for parameteren from. Mulige værdier er ABS (absolut) og REL (relativ). Standard er REL. |
to |
Det samme som from, men angiver slutningen af vinduet. Den sidste række er inkluderet i vinduet. |
to_type |
Samme som from_type, men ændrer funktionsmåden for to. |
relation |
(Valgfrit) Et tabeludtryk, som outputrækkerne returneres fra. Hvis den bruges i visuelle beregninger, accepterer denne parameter en akse i visualiseringsfiguren.
Hvis det er angivet, skal alle kolonner i partitionBy komme fra den eller en relateret tabel.
Hvis udeladt: – Du skal angive orderBy eksplicit.– Alle orderBy udtryk og partitionBy udtryk skal være fuldt kvalificerede kolonnenavne og komme fra en enkelt tabel.
– ALLSELECTED() som standard for alle kolonner i orderBy og partitionBy. |
orderBy |
(Valgfrit) En ORDERBY() delsætning, der indeholder de udtryk, der definerer, hvordan hver partition sorteres.
Hvis udeladt: – Du skal angive relation eksplicit.
– Som standard sorteres efter hver kolonne i relation , der ikke allerede er angivet i partitionBy. |
blanks |
(Valgfrit) En optælling, der definerer, hvordan tomme værdier skal håndteres ved sortering af relation eller axis.
De understøttede værdier er:
Når du angiver både blanks parameteren og tomme værdier i funktionen ORDERBY() for individuelle udtryk, blanks prioriteres det relevante orderBy-udtryk i det enkelte orderBy-udtryk. OrderBy-udtryk uden blanks at være angivet ærer blanks parameteren på den overordnede funktion. |
partitionBy |
(Valgfrit) En PARTITIONBY() delsætning, der indeholder de kolonner, der definerer, hvordan relation partitioneres. Hvis den udelades, behandles relation som en enkelt partition. |
matchBy |
(Valgfrit) En MATCHBY() delsætning, der indeholder de kolonner, der definerer, hvordan dataene skal matche, og identificere den aktuelle række. |
reset |
(Valgfrit) Kun tilgængelig i visuelle beregninger. Angiver, om beregningen nulstilles, og på hvilket niveau i den visuelle figurs kolonnehierarki. Accepterede værdier er: en feltreference til en kolonne i den aktuelle visualiseringsfigur, NONE (standard), LOWESTPARENT, HIGHESTPARENTeller et heltal. Funktionsmåden afhænger af heltalstegnet: - Hvis nul eller udeladt, nulstilles beregningen ikke. Svarer til NONE.
– Hvis den er positiv, identificerer heltalet kolonnen, der starter fra den højeste, uafhængig af detaljering. HIGHESTPARENT svarer til 1.
– Hvis det er negativt, identificerer heltalet kolonnen med start fra det laveste i forhold til den aktuelle detaljering. LOWESTPARENT svarer til -1. |
Returværdi
Alle rækker fra vinduet.
Bemærkninger
Med undtagelse af kolonner, der tilføjes af DAX tabelfunktioner, skal hver kolonne i relation (når matchBy ikke findes) eller hver kolonne i matchBy og partitionBy (når matchBy den er til stede) have en tilsvarende ydre værdi for at hjælpe med at definere den aktuelle række, der skal arbejdes på. Hvis from_type og to_type begge har værdi ABS, gælder følgende kun for kolonnerne partitionBy :
- Hvis der findes præcis én tilsvarende ydre kolonne, bruges dens værdi.
- Hvis der ikke findes en tilsvarende ydre kolonne:
- WINDOW bestemmer først alle kolonner, der ikke har en tilsvarende ydre kolonne.
- For hver kombination af eksisterende værdier for disse kolonner i WINDOWden overordnede kontekst evalueres, WINDOW og de tilsvarende rækker returneres.
- WINDOW's endelige output er en forening af disse rækker.
- Hvis der findes mere end én tilsvarende ydre kolonne, returneres der en fejl.
Hvis alle relation's kolonner blev tilføjet af DAX tabelfunktioner, returneres der en fejl.
Hvis matchBy er til stede, WINDOW forsøger at bruge matchBy og partitionBy kolonner til at identificere rækken.
Hvis matchBy ikke findes, og de kolonner, der er angivet i orderBy og partitionBy ikke entydigt kan identificere hver række i relation:
- WINDOW forsøger at finde det mindste antal ekstra kolonner, der kræves for entydigt at identificere hver række.
- Hvis sådanne kolonner findes, WINDOW føjes disse nye kolonner automatisk til
orderBy, og hver partition sorteres ved hjælp af dette nye sæt orderBy-kolonner. - Hvis sådanne kolonner ikke kan findes, returneres der en fejl.
Der returneres en tom tabel, hvis:
- Den tilsvarende ydre værdi for en
orderByellerpartitionBy-kolonne findes ikke irelation. - Hele vinduet er uden for partitionen, eller starten af vinduet er efter dets afslutning.
Hvis du bruger WINDOW i en beregnet kolonne, der er defineret i den samme tabel som relation, og orderBy udelades, returneres der en fejl.
Hvis starten af vinduet er før den første række, angives den til den første række. Hvis slutningen af vinduet er efter den sidste række i partitionen, er den på samme måde angivet til den sidste række.
Du kan kun bruge reset i visuelle beregninger, og du kan ikke bruge det sammen med orderBy eller partitionBy. Hvis reset er til stede, kan du angive axis , men ikke relation.
Hvis værdien af reset er absolut (et positivt heltal, HIGHESTPARENTeller en feltreference), og beregningen evalueres på eller over målniveauet i hierarkiet, nulstilles beregningen for hvert enkelt element. Det vil altså være, at funktionen evalueres i en partition, der kun indeholder det pågældende element.
Eksempler i denne artikel kan bruges sammen med eksempelmodellen Adventure Works DW 2020 Power BI Desktop. Hvis du vil hente modellen, skal du se DAX eksempelmodel.
Eksempel 1 – måling
Følgende måling:
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 det 3-dages gennemsnit af enhedspriser for hvert produkt. 3-dages vinduet består af tre dage, hvor produktet havde salg, ikke nødvendigvis tre kalenderdage i træk.
Eksempel 2 – måling
Følgende måling:
RunningSum =
SUMX (
WINDOW (
1,
ABS,
0,
REL,
ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] ),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Returnerer den løbende sum for Samlet salg efter månedsnummer på år og genstarter for hvert regnskabsår:
| År | Månedsnummer på år | Salgsbeløb | RunningSum |
|---|---|---|---|
| FY2018 | 0 | 1.327.675 USD | 1.327.675 USD |
| FY2018 | 2 | 3.936.463 USD | 5.264.138 USD |
| FY2018 | 3 | 700.873 USD | 5.965.011 USD |
| FY2018 | 4 | 1.519.275 USD | 7.484.286 USD |
| FY2018 | 5 | 2.960.378 USD | 10.444.664 USD |
| FY2018 | 6 | 1.487.671 USD | 11.932.336 USD |
| FY2018 | 7 | 1.423.357 USD | 13.355.693 USD |
| FY2018 | 8 | 2.057.902 USD | 15.413.595 USD |
| FY2018 | 9 | 2.523.948 USD | 17.937.543 USD |
| FY2018 | 10 | 561.681 USD | 18.499.224 USD |
| FY2018 | 11 | 4.764.920 USD | 23.264.145 USD |
| FY2018 | 12 | 596.747 USD | 23.860.891 USD |
| FY2019 | 0 | 1.847.692 USD | 1.847.692 USD |
| FY2019 | 2 | 2.829.362 USD | 4.677.054 USD |
| FY2019 | 3 | 2.092.434 USD | 6.769.488 USD |
| FY2019 | 4 | 2.405.971 USD | 9.175.459 USD |
| FY2019 | 5 | 3.459.444 USD | 12.634.903 USD |
| FY2019 | 6 | 2.850.649 USD | 15.485.552 USD |
| FY2019 | 7 | 2.939.691 USD | 18.425.243 USD |
| FY2019 | 8 | 3.964.801 USD | 22.390.045 USD |
| FY2019 | 9 | 3.287.606 USD | 25.677.650 USD |
| FY2019 | 10 | 2.157.287 USD | 27.834.938 USD |
| FY2019 | 11 | 3.611.092 USD | 31.446.030 USD |
| FY2019 | 12 | 2.624.078 USD | 34.070.109 USD |
| FY2020 | 0 | 3.235.187 USD | 3.235.187 USD |
| FY2020 | 2 | 4.070.046 USD | 7.305.233 USD |
| FY2020 | 3 | 4.429.833 USD | 11.735.066 USD |
| FY2020 | 4 | 4.002.614 USD | 15.737.680 USD |
| FY2020 | 5 | 5.265.797 USD | 21.003.477 USD |
| FY2020 | 6 | 3.465.241 USD | 24.468.717 USD |
| FY2020 | 7 | 3.513.064 USD | 27.981.781 USD |
| FY2020 | 8 | 5.247.165 USD | 33.228.947 USD |
| FY2020 | 9 | 5.104.088 USD | 38.333.035 USD |
| FY2020 | 10 | 3.542.150 USD | 41.875.184 USD |
| FY2020 | 11 | 5.151.897 USD | 47.027.081 USD |
| FY2020 | 12 | 4.851.194 USD | 51.878.275 USD |
Eksempel 3 – visuel beregning
Følgende visualiseringsberegning DAX forespørgsel:
TotalSalesRunningSumByYear =
SUMX ( WINDOW ( 0, ABS, 0, REL, ROWS, HIGHESTPARENT ), [SalesAmount] )
Returnerer det akkumulerede samlede salg pr. måned beregnet sammen med hvert år. Værdien 1 kan bruges i stedet for HIGHESTPARENTmed det samme resultat.
Skærmbilledet nedenfor viser den visuelle matrix og det visuelle beregningsudtryk:
Eksempel 4 – visuel beregning
Følgende visualiseringsberegning DAX forespørgsel:
TotalSalesRunningSumByQuarter =
SUMX ( WINDOW ( 0, ABS, 0, REL,, -1 ), [SalesAmount] )
Returnerer det akkumulerede samlede salg pr. måned beregnet for hvert kvartal.
Værdien LOWESTPARENT kan bruges i stedet for -1 med det samme resultat.