WINDOW
Van toepassing op:berekende kolomberekende tabelMeasureVisuele 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>] )
Parameters
Term | Definitie |
---|---|
from |
Geeft aan waar de window begint. Dit kan elke DAX expressie zijn die een scalaire valueretourneert.
Het gedrag is afhankelijk van de parameter from_type : - If from_type is REL, het aantal rijen dat moet worden teruggegaan (negatief value) or vooruit (positief value) uit de huidige rij om de first rij in de windowop te halen.
- If from_type is ABS, andfrom positief is, is het de positie van het begin van de window vanaf het begin van de partitie. Indexering is gebaseerd op 1. 1 betekent bijvoorbeeld dat window begint vanaf het begin van de partitie.
If
from negatief is, is het de positie van het begin van de window vanaf het einde van de partitie. -1 betekent de last rij in de partitie. |
from_type |
Wijzigt het gedrag van de parameter from . Mogelijke values zijn ABS (absolute) and REL (relatief). De standaardwaarde is REL. |
to |
Hetzelfde als from , maar geeft het einde van de windowaan. De rij last is opgenomen in de window. |
to_type |
Hetzelfde als from_type , maar wijzigt het gedrag van to . |
relation |
(Optioneel) Een tabelexpressie waaruit de uitvoerrijen worden geretourneerd.
If opgegeven, moeten all kolommen in partitionBy afkomstig zijn or een related tabel.
If weggelaten: - orderBy moet expliciet worden opgegeven.: All orderBy andpartitionBy expressies moeten volledig gekwalificeerde kolomnamen zijn and afkomstig zijn van één tabel.
: standaard ingesteld op ALLSELECTED() van all kolommen in orderBy andpartitionBy . |
axis |
(Optioneel) Een as in de visuele shape. Alleen beschikbaar in visuele berekeningen, and vervangt relation . |
orderBy |
(Optioneel) Een ORDERBY() component met de expressies die define hoe elke partitie wordt gesorteerd.
If weggelaten: - relation moet expliciet worden opgegeven.
: standaard wordt elke kolom in relation gerangschikt die not al is opgegeven in partitionBy . |
blanks |
(Optioneel) Een opsomming die definieert hoe blankvalues moet worden verwerkt bij het sorteren.
Deze parameter is gereserveerd voor toekomstig gebruik. Momenteel wordt de enige ondersteunde value DEFAULT , waarbij het gedrag voor numerieke values wordt blankvalues geordend tussen nul and negatieve values. Het gedrag voor tekenreeksen wordt blankvalues worden geordend voordat all tekenreeksen, inclusief lege tekenreeksen. |
partitionBy |
(Optioneel) Een PARTITIONBY() component met de kolommen die define hoe relation wordt gepartitioneerd.
If weggelaten, wordt relation behandeld als één partitie. |
matchBy |
(Optioneel) Een MATCHBY() component met de kolommen die define hoe gegevens overeenkomen and de huidige rij identificeren. |
reset |
(Optioneel) Alleen beschikbaar in visuele berekeningen. Hiermee wordt aangegeven if de berekening opnieuw wordt ingesteld and op welk niveau van de kolomhiërarchie van de visualshape. Geaccepteerde values zijn: een veldreferentie naar een kolom in de huidige visuele shape, NONE (standaard), LOWESTPARENT , HIGHESTPARENT , or een geheel getal. Het gedrag is afhankelijk van het gehele getal sign: - If nul or weggelaten, wordt de berekening not opnieuw ingesteld. Gelijk aan NONE .
- If positief, identificeert het gehele getal de kolom die begint vanaf het hoogste, onafhankelijk van graan. HIGHESTPARENT is gelijk aan 1.
- If negatief, identificeert het gehele getal de kolom die begint vanaf het laagste getal ten opzichte van de huidige korrel. LOWESTPARENT is gelijk aan -1. |
value retourneren
All rijen uit de window.
Opmerkingen
Except voor kolommen die zijn toegevoegd door DAX tabelfuncties, moet elke kolom in relation
, wanneer matchBy
aanwezig not is, elke kolom in ormatchBy
andpartitionBy
, wanneer matchBy
aanwezig is, een overeenkomstig buitenste value hebben om de huidige rij waarop moet worden uitgevoerd te define.
If
from_type
and
to_type
beide valueABShebben, is het volgende alleen van toepassing op de kolommen partitionBy
:
- If er precies één overeenkomstige buitenkolom is, wordt de value gebruikt.
-
If er geen corresponderende buitenste kolom is:
- WINDOW bepaalt firstall kolommen zonder bijbehorende buitenste kolom.
- Voor elke combinatie van bestaande values voor deze kolommen in de bovenliggende context van WINDOWwordt WINDOW geëvalueerd and de bijbehorende rijen worden geretourneerd.
- WINDOW uiteindelijke uitvoer is een union van deze rijen.
- If er meer dan één corresponderende buitenkolom is, wordt een error geretourneerd.
If
all kolommen van relation
zijn toegevoegd door DAX tabelfuncties, wordt een error geretourneerd.
If
matchBy
aanwezig is, probeert WINDOWmatchBy
andpartitionBy
kolommen te gebruiken om de rij te identificeren.
If
matchBy
not aanwezig is and de kolommen die zijn opgegeven in orderBy
andpartitionBy
niet elke rij in relation
kunnen identificeren, en vervolgens:
- WINDOW probeert het minste aantal extra kolommen te find dat nodig is om elke rij uniek te identificeren.
-
If dergelijke kolommen kunnen worden gevonden, voegt WINDOW deze nieuwe kolommen automatisch toe aan
orderBy
, and elke partitie wordt gesorteerd met behulp van deze nieuwe set orderBy kolommen. - If dergelijke kolommen niet kunnen worden gevonden, wordt een error geretourneerd.
Er wordt een lege tabel geretourneerd if:
- De overeenkomstige buitenste value van een
orderBy
orpartitionBy
kolom bestaat not binnenrelation
. - De hele window valt buiten de partitie, or het begin van de window is na het einde.
If
WINDOW wordt gebruikt in een berekende kolom die is gedefinieerd in dezelfde tabel als relation
, wordt andorderBy
weggelaten, wordt een error geretourneerd.
If het begin van de window vóór de rij first valt, wordt deze ingesteld op de first rij. Op dezelfde manier wordt if het einde van de window na de last rij van de partitie ingesteld op de last rij.
reset
kan alleen worden gebruikt in visuele berekeningen, and kan niet worden gebruikt in combinatie met orderBy
orpartitionBy
.
If
reset
aanwezig is, kan axis
worden opgegeven, maar relation
niet.
Voorbeeld 1: measure
De volgende 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]))
)
Retourneert de drie-dayaverage van eenheidsprijzen voor elke product. Let op de 3-daywindow bestaat uit drie dagen waarin de product verkoop heeft, not noodzakelijkerwijs drie opeenvolgende calendar dagen.
Voorbeeld 2: measure
De volgende measure:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Retourneert de actieve sum voor de totale verkoop per Month aantal Year, opnieuw opstarten voor elke fiscale Year:
Year | Month aantal Year | 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])
Geeft als resultaat de cumulatieve totale verkoop per month, berekend langs elke year. De values 1 and -2 kan worden gebruikt in plaats van HIGHESTPARENT
, met dezelfde resultaten.
In de onderstaande schermopname ziet u de visualmatrix and de visuele berekeningsexpressie:
Voorbeeld 4: visuele berekening
De volgende visuele berekening DAX query:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Geeft als resultaat de cumulatieve totale verkoop per month, berekend langs elke quarter.
inhoud Related
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM