WINDOW

Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMittaVisualisoinnin laskenta

Palauttaa useita rivejä, jotka on sijoitettu määritetyn välin sisälle.

Syntaksi

WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Parametrit

Termi Määritelmä
from Ilmaisee, mistä ikkuna alkaa. Se voi olla mikä tahansa DAX lauseke, joka palauttaa skalaariarvon.
Toiminta riippuu from_type-parametrista:
– Jos from_type on REL, taaksepäin (negatiivinen arvo) tai eteenpäin (positiivinen arvo) palautettavien rivien määrä nykyiseltä riviltä ikkunan ensimmäisen rivin saamiseksi.
– Jos from_type on ABSja from on positiivinen, se on ikkunan alun sijainti osion alusta. Indeksointi on 1-pohjainen, ja 0 tulkitaan 1:ksi. Esimerkiksi 0 ja 1 tarkoittavat, että ikkuna alkaa osion alusta. Jos from on negatiivinen, se on ikkunan alun sijainti osion lopusta. -1 tarkoittaa osion viimeistä riviä.
from_type Muokkaa from-parametrin toimintaa. Mahdollisia arvoja ovat ABS (absoluuttinen) ja REL (suhteellinen). Oletusarvo on REL.
to Sama kuin from, mutta ilmaisee ikkunan lopun. Viimeinen rivi sisältyy ikkunaan.
to_type Sama kuin from_type, mutta muokkaa totoimintaa.
relation (Valinnainen) Taulukkolauseke, josta tulosrivit palautetaan. Jos tätä parametria käytetään visualisoinnin laskutoimituksissa, se hyväksyy akselin visuaalisessa muodossa.
Jos on määritetty, kaikkien partitionBy sarakkeiden on oltava peräisin siitä tai liittyvästä taulukosta.
Jos tämä jätetään pois:
– Sinun on määritettävä se eksplisiittisesti orderBy .
- Kaikkien orderBy lausekkeiden ja partitionBy lausekkeiden on oltava täydellisiä sarakkeiden nimiä ja ne on oltava peräisin yksittäisestä taulukosta.
: ALLSELECTED ja orderBysarakkeista partitionBy().
orderBy (Valinnainen) ORDERBY()-lause, joka sisältää lausekkeet, jotka määrittävät kunkin osion lajittelutavan.
Jos tämä jätetään pois:
– Sinun on määritettävä se eksplisiittisesti relation .
- Oletusarvoisesti järjestäminen kohteen jokaisen sarakkeen relation mukaan, jota ei ole vielä määritetty kohteessa partitionBy.
blanks (Valinnainen) Luettelointi, joka määrittää, miten tyhjiä arvoja käsitellään lajitellaan relation tai axis.
Tuetut arvot ovat seuraavat:
  • DEFAULT (oletusarvo), jossa numeeristen arvojen toiminta on se, että tyhjät arvot järjestetään nollan ja negatiivisen arvon välillä. Merkkijonot toimivat niin, että tyhjät arvot järjestetään ennen kaikkia merkkijonoja, myös tyhjiä merkkijonoja.
  • FIRST: tyhjät järjestetään aina alusta riippumatta nousevasta tai laskevasta lajittelujärjestyksestä.
  • LAST: tyhjät järjestetään aina lopussa nousevasta tai laskevasta lajittelujärjestyksestä riippumatta.

Kun määrität sekä parametrin blanks että tyhjät arvot ()-funktiossa yksittäisille lausekkeille, yksittäisessä orderBy-lausekkeessaORDERBY priorisointina on asianmukainen orderBy-lauseke. blanks OrderBy-lausekkeet, joita ei blanks ole määritetty, seuraavat noudattaa pääfunktion blanks parametria.
partitionBy (Valinnainen) A PARTITIONBY() -lause, joka sisältää sarakkeet, jotka määrittävät, miten relation osioidaan. Jos tämä jätetään pois, relation käsitellään yksittäisenä osiona.
matchBy (Valinnainen) A MATCHBY() -lause, joka sisältää sarakkeet, jotka määrittävät, miten tiedot vastaavat ja tunnistavat nykyisen rivin.
reset (Valinnainen) Käytettävissä vain visualisoinnin laskutoimituksissa. Ilmaisee, nollataanko laskutoimitus ja millä tasolla visualisoinnin muodon sarakehierarkia on. Hyväksyttyjä arvoja ovat: kenttäviittaus sarakkeeseen nykyisessä visualisoinnin muodossa, NONE (oletus), LOWESTPARENT, HIGHESTPARENTtai kokonaisluku. Toiminta riippuu kokonaislukumerkistä:
– Jos nolla tai jätetään pois, laskutoimitusta ei nollata. Vastaa NONE.
– Jos se on positiivinen, kokonaisluku tunnistaa sarakkeen aloittaen suurimmasta, viljasta riippumatta. HIGHESTPARENT vastaa lukua 1.
– Jos se on negatiivinen, kokonaisluku tunnistaa sarakkeen aloittaen pienimmästä tasosta suhteessa nykyiseen rakeeseen. LOWESTPARENT vastaa lukua -1.

Palautusarvo

Kaikki rivit ikkunasta.

Huomautukset

Taulukkofunktioiden lisäämiä DAX sarakkeita lukuun ottamatta jokaisella sarakkeella relation (kun matchBy ei ole olemassa) tai kullakin sarakkeella matchBy ja partitionBy (kun matchBy on olemassa) on oltava vastaava ulkoinen arvo, joka auttaa määrittämään nykyisen rivin, jolla toiminto suoritetaan. Jos from_type ja to_type kummallakin on arvo ABS, seuraavat koskevat vain partitionBy sarakkeita:

  • Jos täsmälleen yksi vastaava ulkosarake on olemassa, sen arvoa käytetään.
  • Jos vastaavaa ulkosaraketta ei ole olemassa:
    • WINDOW määrittää ensin kaikki sarakkeet, joilla ei ole vastaavaa ulompaa saraketta.
    • Näiden sarakkeiden WINDOWjokaisen olemassa olevien arvojen yhdistelmän pääkonteksti WINDOW arvioidaan, ja vastaavat rivit palautetaan.
    • WINDOW:n lopullinen tulos on näiden rivien liitto.
  • Jos useampi kuin yksi vastaava ulkosarake on olemassa, palautetaan virhe.

Jos relation-taulukkofunktiot lisäävät kaikki DAX-sarakkeista, saat virheilmoituksen.

Jos matchBy on olemassa, WINDOW yritä tunnistaa rivi käyttämällä matchBy - ja partitionBy -sarakkeita. Jos matchBy ei ole olemassa ja -kohteen sisällä orderBypartitionBy määritetyt sarakkeet eivät voi yksilöidä jokaista riviä kohteessa relation:

  • WINDOW yrittää löytää pienintä määrää lisäsarakkeita, joita jokaisen rivin yksilöllinen tunnistaminen edellyttää.
  • Jos tällaisia sarakkeita löytyy, WINDOW nämä uudet sarakkeet liitetään automaattisesti arvoon orderBy, ja kukin osio lajitellaan käyttämällä tätä uutta orderBy-sarakkeiden joukkoa.
  • Jos tällaisia sarakkeita ei löydy, saat virheilmoituksen.

Palautetaan tyhjä taulukko, jos:

  • :n tai -sarakkeen orderBy vastaavaa ulkoarvoa ei ole olemassa -kohteen sisällärelation.partitionBy
  • Koko ikkuna on osion ulkopuolella, tai ikkunan alku on sen jälkeen.

Jos käytät -funktiota WINDOW lasketussa sarakkeessa, joka on määritetty samassa taulukossa kuin relation, ja orderBy jätetään pois, palautetaan virhe.

Jos ikkunan alku on ennen ensimmäistä riviä, se asetetaan ensimmäiselle riville. Vastaavasti, jos ikkunan loppu on osion viimeisen rivin jälkeen, se on määritetty viimeiselle riville.

Voit käyttää sitä reset vain visualisoinnin laskutoimituksissa, etkä voi käyttää sitä yhdessä :n kanssa orderBy tai partitionBy. Jos reset on olemassa, voit määrittää axis kohteen, mutta et relation.

Jos -arvo reset on absoluuttinen (positiivinen kokonaisluku tai HIGHESTPARENTkenttäviittaus) ja laskutoimitus arvioidaan hierarkian tavoitetasolla tai sen yläpuolella, laskelma nollautuu kunkin yksittäisen elementin kohdalla. Eli funktio arvioidaan osiossa, joka sisältää vain kyseisen tietyn elementin.

Tämän artikkelin esimerkkejä voidaan käyttää Adventure Works DW 2020 Power BI Desktop -mallissa. Jos haluat hakea mallin, katso DAX esimerkkimallin.

Esimerkki 1 – mittari

Seuraava mittari:

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] ) )
)

Palauttaa kunkin tuotteen yksikköhintojen kolmen päivän keskiarvon. Kolmen päivän aikaikkuna muodostuu kolmesta päivästä, jolloin tuotteella oli myynti, ei välttämättä kolmena peräkkäisenä kalenteripäivänä.

Esimerkki 2 – mittari

Seuraava mittari:

RunningSum =
SUMX (
    WINDOW (
        1,
        ABS,
        0,
        REL,
        ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] ),
        PARTITIONBY ( 'Date'[Fiscal Year] )
    ),
    [Total Sales]
)

Palauttaa kokonaismyynnin juoksevan summan vuoden kuukauden määrän mukaan. Tämä käynnistetään uudelleen jokaiselle tilivuodelle:

Vuosi Vuoden kuukauden numero Myynnin määrä Juokseva summa
TV2018 1 1 327 675 dollaria 1 327 675 dollaria
TV2018 2 3 936 463 $ 5 264 138 dollaria
TV2018 3 700 873 dollaria 5 965 011 dollaria
TV2018 4 1 519 275 dollaria 7 484 286 dollaria
TV2018 5 2 960 378 dollaria 10 444 664 dollaria
TV2018 6 1 487 671 dollaria 11 932 336 $
TV2018 7 1 423 357 dollaria 13 355 693 dollaria
TV2018 8 2 057 902 dollaria 15 413 595 dollaria
TV2018 9 2 523 948 dollaria 17 937 543 dollaria
TV2018 10 561 681 $ 18 499 224 $
TV2018 11 4 764 920 dollaria 23 264 145 dollaria
TV2018 12 596 747 dollaria 23 860 891 dollaria
TV2019 1 1 847 692 $ 1 847 692 $
TV2019 2 2 829 362 $ 4 677 054 dollaria
TV2019 3 2 092 434 dollaria 6 769 488 dollaria
TV2019 4 2 405 971 dollaria 9 175 459 dollaria
TV2019 5 3 459 444 dollaria 12 634 903 dollaria
TV2019 6 2 850 649 dollaria 15 485 552 dollaria
TV2019 7 2 939 691 $ 18 425 243 dollaria
TV2019 8 3 964 801 dollaria 22 390 045 dollaria
TV2019 9 3 287 606 dollaria 25 677 650 dollaria
TV2019 10 2 157 287 dollaria 27 834 938 dollaria
TV2019 11 3 611 092 dollaria 31 446 030 dollaria
TV2019 12 2 624 078 dollaria 34 070 109 dollaria
TV2020 1 3 235 187 dollaria 3 235 187 dollaria
TV2020 2 4 070 046 dollaria 7 305 233 dollaria
TV2020 3 4 429 833 dollaria 11 735 066 dollaria
TV2020 4 4 002 614 dollaria 15 737 680 dollaria
TV2020 5 5 265 797 $ 21 003 477 dollaria
TV2020 6 3 465 241 dollaria 24 468 717 dollaria
TV2020 7 3 513 064 dollaria 27 981 781 dollaria
TV2020 8 5 247 165 dollaria 33 228 947 dollaria
TV2020 9 5 104 088 dollaria 38 333 035 dollaria
TV2020 10 3 542 150 dollaria 41 875 184 dollaria
TV2020 11 5 151 897 dollaria 47 027 081 dollaria
TV2020 12 4 851 194 dollaria 51 878 275 dollaria

Esimerkki 3 – visuaalinen laskutoimitus

Seuraava visuaalisen laskutoimituksen DAX kysely:

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

Palauttaa kumulatiivisen kokonaismyynnin kuukauden mukaan laskettuna vuosittain. Arvoa 1 voidaan käyttää kohteen sijaan HIGHESTPARENTsamalla tuloksella.

Alla olevassa näyttökuvassa näytetään visuaalinen matriisi ja visuaalinen laskentalauseke:

DAX visualisoinnin laskenta

Esimerkki 4 – visuaalinen laskutoimitus

Seuraava visuaalisen laskutoimituksen DAX kysely:

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

Palauttaa kumulatiivisen kokonaismyynnin kuukauden mukaan laskettuna joka vuosineljänneksen mukaan. Arvoa LOWESTPARENT voidaan käyttää arvon -1 sijaan samalla tuloksella.