Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Számított oszlop
Számított tábla
Mér
Vizualizációs számítás
Több sort ad vissza, amelyek az adott intervallumon belül vannak elhelyezve.
Szemantika
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Paraméterek
| Időszak | Definíció |
|---|---|
from |
Azt jelzi, hogy hol kezdődik az ablak. Bármely DAX kifejezés, amely skaláris értéket ad vissza.
A viselkedés a from_type paramétertől függ: – Ha from_type REL, az aktuális sorból visszalépendő sorok száma (negatív érték) vagy előre (pozitív érték) az ablak első sorának lekéréséhez.
- Ha from_type igen ABS, és from pozitív, akkor az az ablak kezdőpozíciója a partíció elejétől. Az indexelés 1-alapú, a 0 pedig 1.. A 0 és az 1 például azt jelenti, hogy az ablak a partíció elejétől kezdődik. Ha from negatív, akkor az ablak elejének pozíciója a partíció végétől. A -1 a partíció utolsó sorát jelenti. |
from_type |
Módosítja a from paraméter viselkedését. A lehetséges értékek a ABS (abszolút) és a REL (relatív). Az alapértelmezett érték a REL. |
to |
Ugyanaz, mint from, de az ablak végét jelzi. Az utolsó sor szerepel az ablakban. |
to_type |
Ugyanaz, mint from_type, de módosítja a toviselkedését . |
relation |
(Nem kötelező) Egy táblakifejezés, amelyből a kimeneti sorok lesznek visszaadva. Ha vizuális számításokban használják, ez a paraméter elfogadja a vizualizáció alakzatának tengelyét.
Ha meg van adva, a partitionBy összes oszlopának onnan vagy egy kapcsolódó táblából kell származnia.
Ha nincs megadva: – Explicit módon kell megadnia orderBy .- Az összes orderBy és partitionBy kifejezésnek teljes oszlopneveknek kell lennie, és egyetlen táblából kell származnia.
– A ALLSELECTED és orderByösszes oszlopának alapértelmezett értéke partitionBy(). |
orderBy |
(Nem kötelező) Egy ORDERBY() záradék, amely az egyes partíciók rendezését meghatározó kifejezéseket tartalmazza.
Ha nincs megadva: – Explicit módon kell megadnia relation .
- Alapértelmezés szerint az összes olyan oszlop szerint rendezi a sorrendet, amely relation még nincs megadva a fájlban partitionBy. |
blanks |
(Nem kötelező) Enumerálás, amely meghatározza, hogyan kezelhetők az üres értékek a relation vagy axisrendezésekor.
A támogatott értékek a következők:
Ha a paramétert és az blanks üres értékeket is megadja az ORDERBYegyes kifejezések () függvényében, blanks az egyes orderBy kifejezés prioritást élvez a megfelelő orderBy kifejezésnél. Az OrderBy-kifejezések megadása nélkül blanks tisztelik a blanks paramétert a szülőfüggvényen. |
partitionBy |
(Nem kötelező) A PARTITIONBY particionálását meghatározó oszlopokat tartalmazó záradék. Ha nincs megadva, a relation egyetlen partícióként lesz kezelve. |
matchBy |
(Nem kötelező) Egy MATCHBY() záradék, amely azokat az oszlopokat tartalmazza, amelyek meghatározzák az adatok egyezését és az aktuális sor azonosítását. |
reset |
(Nem kötelező) Csak vizuális számításokban érhető el. Azt jelzi, hogy a számítás alaphelyzetbe áll-e, és hogy a vizualizáció alakzatának oszlophierarchiájának melyik szintjén. Az elfogadott értékek a következők: az aktuális vizualizáció alakzatának egy oszlopára mutató mezőhivatkozás, NONE (alapértelmezett), LOWESTPARENT, HIGHESTPARENTvagy egész szám. A viselkedés az egész szám jelétől függ: – Ha nulla vagy nincs megadva, a számítás nem állítható vissza. Egyenértékű NONE.
– Ha pozitív, az egész szám a legmagasabbtól kezdődő, a szemcséktől független oszlopot azonosítja. HIGHESTPARENT 1-nek felel meg.
– Ha negatív, az egész szám a legalacsonyabbtól kezdődő oszlopot azonosítja az aktuális szemcséhez viszonyítva. LOWESTPARENT -1-nek felel meg. |
Visszaadott érték
Az ablak összes sora.
Megjegyzések
A táblafüggvények által DAX hozzáadott oszlopok kivételével minden oszlopnak relation (ha matchBy nincs jelen), illetve minden oszlopnak partitionBymatchBy és (amikor matchBy jelen van) rendelkeznie kell egy megfelelő külső értékkel, amely segít meghatározni az aktuális sort, amelyen működni szeretne. Ha from_type és to_type mindkettőnek van értéke ABS, az alábbiak csak az partitionBy oszlopokra vonatkoznak:
- Ha pontosan egy megfelelő külső oszlop létezik, annak értékét használja a rendszer.
- Ha nincs megfelelő külső oszlop:
- WINDOW először meghatározza az összes olyan oszlopot, amely nem rendelkezik megfelelő külső oszloppal.
- A rendszer kiértékeli a szülőkörnyezetben lévő WINDOWoszlopok meglévő értékeinek minden kombinációját, WINDOW és visszaadja a megfelelő sorokat.
- WINDOW's végső kimenete ezeknek a soroknak az egyesítése.
- Ha több megfelelő külső oszlop is létezik, a program hibát ad vissza.
Ha relation táblafüggvények DAXösszes oszlopát hozzáadták, a rendszer hibát ad vissza.
Ha matchBy jelen van, WINDOW próbálja meg használni matchBy és partitionBy oszlopokkal azonosítani a sort.
Ha matchBy nincs jelen, és a megadott orderBypartitionBy oszlopok nem azonosítják egyedileg a következő sorokat relation:
- WINDOW megpróbálja megtalálni az összes sor egyedi azonosításához szükséges minimális számú további oszlopot.
- Ha ilyen oszlopok találhatók, WINDOW automatikusan hozzáfűzi ezeket az új oszlopokat az oszlophoz
orderBy, és az egyes partíciók rendezése ezzel az új orderBy oszlopkészlettel történik. - Ha az ilyen oszlopok nem találhatók, a rendszer hibát ad vissza.
A függvény üres táblát ad vissza, ha:
- Egy vagy
partitionBytöbb oszlop megfelelő külső értékeorderBynem létezik a fájlon belülrelation. - Az egész ablak kívül esik a partíción, vagy az ablak kezdete a vége után van.
Ha ugyanazon a táblán definiált számított oszlopon belül használja WINDOW a függvényt, orderBy amely relationnem jelenik meg, a rendszer hibát ad vissza.
Ha az ablak eleje az első sor előtt van, akkor az első sorra van állítva. Hasonlóképpen, ha az ablak vége a partíció utolsó sora után van, akkor az utolsó sorra van állítva.
Csak vizualizációs számításokban használható reset , és nem használhatja azokkal orderBy együtt vagy partitionBy. Ha reset jelen van, megadhatja axis , de nem relation.
Ha az érték reset abszolút (pozitív egész szám vagy HIGHESTPARENTmezőhivatkozás), és a számítás a hierarchia célszintjén vagy annál magasabban van kiértékelve, a számítás minden egyes elemnél alaphelyzetbe áll. Vagyis a függvény kiértékelése egy olyan partíción belül történik, amely csak az adott elemet tartalmazza.
A cikkben szereplő példák az Adventure Works DW 2020 Power BI Desktop-modellel használhatók. A modell lekéréséhez tekintse meg DAX mintamodell.
1. példa – mérték
A következő mérték:
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] ) )
)
Az egyes termékek egységárainak 3 napos átlagát adja vissza. A 3 napos időszak három napból áll, amelyen a termék értékesítése történt, nem feltétlenül három egymást követő naptári napból.
2. példa – mérték
A következő mérték:
RunningSum =
SUMX (
WINDOW (
1,
ABS,
0,
REL,
ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] ),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Az összes értékesítés folyó összegét adja vissza hónapszám szerint, minden pénzügyi évre vonatkozóan újraindulva:
| Év | Év hónapszáma | Értékesítési összeg | RunningSum |
|---|---|---|---|
| FY2018 | 0 | 1 327 675 FT | 1 327 675 FT |
| 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 FT | 10 444 664 FT |
| FY2018 | 6 | 1 487 671 USD | 11 932 336 FT |
| FY2018 | 7 | 1 423 357 FT | 13 355 693 FT |
| FY2018 | 8 | 2 057 902 USD | 15 413 595 FT |
| FY2018 | 9 | 2 523 948 FT | 17 937 543 FT |
| FY2018 | 10 | 561 681 USD | 18 499 224 USD |
| FY2018 | 11 | 4 764 920 FT | 23 264 145 USD |
| FY2018 | 12 | 596 747 USD | 23 860 891 USD |
| FY2019 | 0 | 1 847 692 FT | 1 847 692 FT |
| FY2019 | 2 | 2 829 362 USD | 4 677 054 FT |
| FY2019 | 3 | 2 092 434 FT | 6 769 488 FT |
| FY2019 | 4 | 2 405 971 FT | 9 175 459 USD |
| FY2019 | 5 | 3 459 444 USD | 12 634 903 FT |
| FY2019 | 6 | 2 850 649 FT | 15 485 552 USD |
| FY2019 | 7 | 2 939 691 FT | 18 425 243 USD |
| FY2019 | 8 | 3 964 801 USD | 22 390 045 FT |
| FY2019 | 9 | 3 287 606 USD | 25 677 650 FT |
| FY2019 | 10 | 2 157 287 USD | 27 834 938 FT |
| FY2019 | 11 | 3 611 092 USD | 31 446 030 FT |
| FY2019 | 12 | 2 624 078 USD | 34 070 109 FT |
| FY2020 | 0 | 3 235 187 USD | 3 235 187 USD |
| FY2020 | 2 | 4 070 046 FT | 7 305 233 USD |
| FY2020 | 3 | 4 429 833 USD | 11 735 066 FT |
| FY2020 | 4 | 4 002 614 USD | 15 737 680 FT |
| FY2020 | 5 | 5 265 797 FT | 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 FT |
| FY2020 | 9 | 5 104 088 FT | 38 333 035 USD |
| FY2020 | 10 | 3 542 150 FT | 41 875 184 USD |
| FY2020 | 11 | 5 151 897 FT | 47 027 081 USD |
| FY2020 | 12 | 4 851 194 USD | 51 878 275 USD |
3. példa – vizualizációszámítás
A következő vizualizációszámítás DAX lekérdezés:
TotalSalesRunningSumByYear =
SUMX ( WINDOW ( 0, ABS, 0, REL, ROWS, HIGHESTPARENT ), [SalesAmount] )
Az összes értékesítés havi összesítését adja eredményül, amely az egyes évek mentén van kiszámítva. Az 1 értéket használhatja helyettük HIGHESTPARENTugyanazzal az eredménnyel.
Az alábbi képernyőképen a vizualizációs mátrix és a vizualizáció számítási kifejezése látható:
4. példa – vizualizációszámítás
A következő vizualizációszámítás DAX lekérdezés:
TotalSalesRunningSumByQuarter =
SUMX ( WINDOW ( 0, ABS, 0, REL,, -1 ), [SalesAmount] )
Az összes értékesítés havi összesítését adja eredményül, amely az egyes negyedévek mentén van kiszámítva.
Az érték LOWESTPARENT használható -1 helyett, ugyanazzal az eredménnyel.