Lezen in het Engels

Delen via


VENSTER

Van toepassing op: Berekende kolom Berekende tabel Meting 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>] )

Parameters

Term 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 dat moet worden teruggegaan (negatieve waarde) of vooruit (positieve waarde) uit de huidige rij om de eerste rij in het venster op te halen.
- Als <from_type> ABS is en <van> positief is, is het de positie van het begin van het venster vanaf het begin van de partitie. Indexering is gebaseerd op 1. 1 betekent bijvoorbeeld dat het venster begint vanaf het begin van de partitie. Als <van> 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.> Mogelijke waarden zijn ABS (absoluut) en REL (relatief). De standaardwaarde is REL.
to Hetzelfde als van<>, 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<.>
relatie (Optioneel) Een tabelexpressie waaruit de uitvoerrijen worden geretourneerd.
Indien opgegeven, moeten alle kolommen in <partitionBy> er vandaan komen of een gerelateerde tabel.
Als u dit weglaat:
- <orderBy> moet expliciet worden opgegeven.
- 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>.
as (Optioneel) Een as in de visuele shape. Alleen beschikbaar in visuele berekeningen en vervangt <de relatie>.
orderBy (Optioneel) Een ORDERBY()-component met de expressies die definiëren hoe elke partitie wordt gesorteerd.
Als u dit weglaat:
- <relatie> moet expliciet worden opgegeven.
- Hiermee wordt standaard elke kolom gerangschikt in <relatie> die nog niet is opgegeven in <partitionBy>.
Blanks (Optioneel) Een opsomming waarmee wordt gedefinieerd hoe lege waarden moeten worden verwerkt bij het sorteren.
Deze parameter is gereserveerd voor toekomstig gebruik.
Op dit moment is de enige ondersteunde waarde STANDAARD, waarbij het gedrag voor numerieke waarden lege waarden is tussen nul en negatieve waarden. Het gedrag voor tekenreeksen is lege waarden die vóór alle tekenreeksen worden geordend, inclusief lege tekenreeksen.
partitionBy (Optioneel) Een PARTITIONBY()-component met de kolommen die definiëren hoe <relatie> wordt gepartitioneerd. Als u dit weglaat, <wordt de relatie> behandeld als één partitie.
matchBy (Optioneel) Een MATCHBY()-component met de kolommen die bepalen hoe gegevens moeten worden vergeleken en de huidige rij moet worden geïdentificeerd.
opnieuw instellen (Optioneel) Alleen beschikbaar in visuele berekeningen. Geeft aan of de berekening opnieuw wordt ingesteld en op welk niveau van de kolomhiërarchie van de visualshape. Geaccepteerde waarden zijn: NONE, LOWESTPARENT, HIGHESTPARENT of 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 vanaf het hoogste, onafhankelijk van de korrel. 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. LAAGSTEPARENT is gelijk aan -1.

Retourwaarde

Alle rijen uit het venster.

Opmerkingen

Met uitzondering van kolommen die door DAX-tabelfuncties zijn toegevoegd, moet elke kolom in <relatie, wanneer <matchBy> niet aanwezig is, of elke kolom in <matchBy en <partitionBy>>, wanneer <matchBy> aanwezig is, een overeenkomstige buitenwaarde hebben om de huidige rij te definiëren waarop> moet worden uitgevoerd. Als <from_type> en <to_type> beide de waarde ABS hebben, is het volgende alleen van toepassing op de <partitionBy-kolommen> :

  • Als er precies één corresponderende buitenkolom is, wordt de waarde ervan gebruikt.
  • Als er geen overeenkomstige buitenste kolom is:
    • WINDOW bepaalt eerst alle kolommen die geen bijbehorende buitenste kolom hebben.
    • Voor elke combinatie van bestaande waarden voor deze kolommen in de bovenliggende context van WINDOW wordt WINDOW geëvalueerd en worden de bijbehorende rijen geretourneerd.
    • UITEINDELIJKE UITVOER VAN WINDOW is een samenvoeging van deze rijen.
  • Als er meer dan één corresponderende buitenkolom is, wordt er een fout geretourneerd.

Als alle kolommen van <relaties> zijn toegevoegd door DAX-tabelfuncties, wordt er een fout geretourneerd.

Als <matchBy> aanwezig is, probeert WINDOW de kolommen matchBy> en <partitionBy> te gebruiken <om de rij te identificeren.
Als <matchBy> niet aanwezig is en de kolommen die zijn opgegeven in <orderBy> en <partitionBy> , kunnen niet elke rij in <relatie> uniek worden geïdentificeerd, dan:

  • WINDOW probeert het minste aantal extra kolommen te vinden dat nodig is om elke rij uniek te identificeren.
  • Als dergelijke kolommen kunnen worden gevonden, worden deze nieuwe kolommen automatisch toegevoegd aan <orderBy> en 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 <kolom orderBy> of <partitionBy> bestaat niet binnen <een relatie>.
  • Het hele venster bevindt zich buiten de partitie of het begin van het venster is na het einde.

Als WINDOW wordt gebruikt in een berekende kolom die is gedefinieerd in dezelfde tabel als <relatie> en <orderBy> wordt weggelaten, wordt een fout geretourneerd.

Als het begin van het venster vóór de eerste rij blijkt te zijn, wordt het 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.

<reset> kan alleen worden gebruikt in visuele berekeningen en kan niet worden gebruikt in combinatie met <orderBy> of <partitionBy>. Als <het opnieuw instellen> aanwezig is, kan de as> worden opgegeven, <maar <niet de relatie>.

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. Houd er rekening mee dat het driedaagse venster bestaat uit drie dagen waarin het product verkoop heeft, 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:

Year 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 DAX-query voor visuele berekening:

TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])

Retourneert de cumulatieve totale verkoop per maand, berekend over elk jaar. De waarden 1 en -2 kunnen worden gebruikt in plaats van HIGHESTPARENT, met dezelfde resultaten.

In de onderstaande schermopname ziet u de visualmatrix en de expressie voor de berekening van de visual:

Berekening van DAX-visuals

Voorbeeld 4: visuele berekening

De volgende DAX-query voor visuele berekening:

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

Retourneert de cumulatieve totale verkoop per maand, berekend over elk kwartaal.

INDEX
MOVINGAVERAGE
AFSTAND
ORDERBY
PARTITIONBY
BEREIK
RANG
RIJNUMMERRUNNINGSUM