Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Berekende kolom
Berekende tabel
Meten
Visuele berekening
Retourneert meerdere rijen die binnen het opgegeven interval zijn geplaatst.
Syntaxis
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parameterwaarden
| Termijn | Definitie |
|---|---|
from |
Geeft aan waar het venster wordt gestart. Dit kan elke DAX expressie zijn die een scalaire waarde retourneert.
Het gedrag is afhankelijk van de parameter from_type: - Als from_type REL is, is het aantal rijen om terug te gaan (negatieve waarde) of vooruit (positieve waarde) uit de huidige rij om de eerste rij in het venster op te halen.
- Als from_type dat het is ABSen from positief is, is het de positie van het begin van het venster vanaf het begin van de partitie. Indexering is gebaseerd op 1 en 0 wordt geïnterpreteerd als 1. Bijvoorbeeld: 0 en 1 betekent dat het venster begint vanaf het begin van de partitie. Als from dit een negatief getal is, is dit de positie van het begin van het venster vanaf het einde van de partitie. -1 betekent de laatste rij in de partitie. |
from_type |
Wijzigt het gedrag van de parameter from. Mogelijke waarden zijn ABS (absoluut) en REL (relatief). De standaardwaarde is REL. |
to |
Hetzelfde als from, maar geeft het einde van het venster aan. De laatste rij is opgenomen in het venster. |
to_type |
Hetzelfde als from_type, maar wijzigt het gedrag van to. |
relation |
(Optioneel) Een tabelexpressie waaruit de uitvoerrijen worden geretourneerd. Als deze parameter wordt gebruikt in visuele berekeningen, accepteert deze parameter een as in de visualshape.
Indien opgegeven, moeten alle kolommen in partitionBy afkomstig zijn van deze of een gerelateerde tabel.
Als u dit weglaat: - U moet expliciet opgeven orderBy .- Alle orderBy en partitionBy expressies moeten volledig gekwalificeerde kolomnamen zijn en afkomstig zijn van één tabel.
: standaard ingesteld op ALLSELECTED() van alle kolommen in orderBy en partitionBy. |
orderBy |
(Optioneel) Een ORDERBY() component met de expressies die definiëren hoe elke partitie wordt gesorteerd.
Als u dit weglaat: - U moet expliciet opgeven relation .
- Standaardvolgorde voor elke kolom in relation die nog niet is opgegeven in partitionBy. |
blanks |
(Optioneel) Een opsomming waarmee wordt gedefinieerd hoe lege waarden moeten worden verwerkt bij het sorteren van de relation of axis.
De ondersteunde waarden zijn:
Wanneer u zowel de blanks parameter als de lege waarden in de ORDERBY() -functie opgeeft voor afzonderlijke expressies, blanks heeft de afzonderlijke orderBy-expressie prioriteit voor de relevante orderBy-expressie. OrderBy-expressies zonder blanks dat u de blanks parameter voor de bovenliggende functie hoeft te respecteren. |
partitionBy |
(Optioneel) Een PARTITIONBY() component met de kolommen die definiëren hoe relation wordt gepartitioneerd. Als u dit weglaat, wordt relation behandeld als één partitie. |
matchBy |
(Optioneel) Een MATCHBY() component met de kolommen die bepalen hoe gegevens overeenkomen en de huidige rij identificeren. |
reset |
(Optioneel) Alleen beschikbaar in visuele berekeningen. Hiermee wordt aangegeven of de berekening opnieuw wordt ingesteld en op welk niveau van de kolomhiërarchie van de visualshape. Geaccepteerde waarden zijn: een veldreferentie naar een kolom in de huidige visualshape, NONE (standaard), LOWESTPARENT, HIGHESTPARENTof een geheel getal. Het gedrag is afhankelijk van het gehele getalteken: - Als nul of weggelaten wordt, wordt de berekening niet opnieuw ingesteld. Gelijk aan NONE.
- Als positief, identificeert het gehele getal de kolom die begint van het hoogste, onafhankelijk van graan. HIGHESTPARENT is gelijk aan 1.
- Als dit negatief is, identificeert het gehele getal de kolom die begint vanaf het laagste getal, ten opzichte van de huidige korrel. LOWESTPARENT is gelijk aan -1. |
Retourwaarde
Alle rijen uit het venster.
Opmerkingen
Behalve kolommen die zijn toegevoegd door DAX tabelfuncties, moet elke kolom in relation (wanneer matchBy deze niet aanwezig is) of elke kolom in matchBy en partitionBy (wanneer matchBy aanwezig) een overeenkomstige buitenwaarde hebben om de huidige rij te definiëren waarop moet worden uitgevoerd. Als from_type en to_type beide waarden ABShebben, geldt het volgende alleen voor de partitionBy kolommen:
- Als er precies één overeenkomstige buitenste kolom bestaat, wordt de waarde ervan gebruikt.
- Als er geen corresponderende buitenste kolom bestaat:
- WINDOW bepaalt eerst alle kolommen die geen corresponderende buitenste kolom hebben.
- Voor elke combinatie van bestaande waarden voor deze kolommen in WINDOWde bovenliggende context wordt WINDOW geëvalueerd en worden de bijbehorende rijen geretourneerd.
- WINDOWDe uiteindelijke uitvoer is een samenvoeging van deze rijen.
- Als er meer dan één corresponderende buitenste kolom bestaat, wordt er een fout geretourneerd.
Als alle kolommen van relationzijn toegevoegd door DAX tabelfuncties, wordt een fout geretourneerd.
Als matchBy deze aanwezig is, WINDOW probeert u te gebruiken matchBy en partitionBy kolommen om de rij te identificeren.
Als matchBy deze niet aanwezig is en de kolommen die zijn opgegeven binnen orderBy en partitionBy niet uniek kunnen worden geïdentificeerd in elke rij in relation:
- WINDOW probeert het minste aantal extra kolommen te vinden dat nodig is om elke rij uniek te identificeren.
- Als dergelijke kolommen kunnen worden gevonden, WINDOW voegt u deze nieuwe kolommen automatisch toe aan
orderByen wordt elke partitie gesorteerd met behulp van deze nieuwe set orderBy-kolommen. - Als dergelijke kolommen niet kunnen worden gevonden, wordt er een fout geretourneerd.
Er wordt een lege tabel geretourneerd als:
- De overeenkomstige buitenwaarde van een
orderByofpartitionBykolom bestaat niet binnenrelation. - Het hele venster bevindt zich buiten de partitie of het begin van het venster is na het einde.
Als u WINDOW in een berekende kolom die is gedefinieerd in dezelfde tabel als relationen orderBy wordt weggelaten, wordt een fout geretourneerd.
Als het begin van het venster zich vóór de eerste rij bevindt, wordt deze ingesteld op de eerste rij. Als het einde van het venster zich na de laatste rij van de partitie bevindt, wordt deze ingesteld op de laatste rij.
U kunt alleen in visuele berekeningen gebruiken reset en u kunt deze niet gebruiken in combinatie met orderBy of partitionBy. Als reset deze aanwezig is, kunt u opgeven axis maar niet relation.
Als de waarde reset absoluut is (een positief geheel getal of HIGHESTPARENTeen veldreferentie) en de berekening wordt geëvalueerd op of boven het doelniveau in de hiërarchie, wordt de berekening voor elk afzonderlijk element opnieuw ingesteld. Dat wil gezegd, de functie wordt geëvalueerd binnen een partitie die alleen dat specifieke element bevat.
Voorbeelden in dit artikel kunnen worden gebruikt met het voorbeeldmodel Adventure Works DW 2020 Power BI Desktop. Zie DAX voorbeeldmodelom het model op te halen.
Voorbeeld 1: meting
De volgende meting:
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] ) )
)
Retourneert het gemiddelde van 3 dagen van eenheidsprijzen voor elk product. Het 3-daagse venster bestaat uit drie dagen waarop het product verkoop had, niet noodzakelijkerwijs drie opeenvolgende kalenderdagen.
Voorbeeld 2: meting
De volgende meting:
RunningSum =
SUMX (
WINDOW (
1,
ABS,
0,
REL,
ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] ),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Retourneert de lopende som voor de totale verkoop per maandaantal jaar, dat opnieuw wordt gestart voor elk fiscaal jaar:
| Jaar | Maandnummer van jaar | Verkoophoeveelheid | 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 |
Voorbeeld 3: visuele berekening
De volgende visuele berekening DAX query:
TotalSalesRunningSumByYear =
SUMX ( WINDOW ( 0, ABS, 0, REL, ROWS, HIGHESTPARENT ), [SalesAmount] )
Retourneert de cumulatieve totale verkoop per maand, berekend over elk jaar. De waarde 1 kan worden gebruikt in plaats van HIGHESTPARENT, met hetzelfde resultaat.
In de onderstaande schermopname ziet u de visualmatrix en de expressie voor de berekening van de visual:
Voorbeeld 4: visuele berekening
De volgende visuele berekening DAX query:
TotalSalesRunningSumByQuarter =
SUMX ( WINDOW ( 0, ABS, 0, REL,, -1 ), [SalesAmount] )
Retourneert de cumulatieve totale verkoop per maand, berekend over elk kwartaal.
De waarde LOWESTPARENT kan worden gebruikt in plaats van -1, met hetzelfde resultaat.