Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Vzťahuje sa na:
Vypočítaný stĺpec
Vypočítaná tabuľka
Merať
Výpočet vizuálu
Vráti viacero riadkov, ktoré sú umiestnené v rámci daného intervalu.
Syntax
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametre
| Obdobie | Definícia |
|---|---|
from |
Udáva, kde sa okno začína. Môže to byť akýkoľvek výraz DAX, ktorý vráti skalárnu hodnotu.
Správanie závisí od parametra from_type: – ak je from_type REL, počet riadkov, ktoré sa majú vrátiť (záporná hodnota) alebo dopredu (kladná hodnota) z aktuálneho riadka na získanie prvého riadka v okne.
- Ak from_type je ABS, a from je kladná, je to pozícia na začiatku okna od začiatku oblasti. Indexovanie je založené na 1 a 0 sa interpretuje ako 1. Napríklad hodnoty 0 a 1 znamenajú, že okno sa začína od začiatku oblasti. Ak from je toto záporné, ide o pozíciu začiatku okna od konca oblasti. -1 znamená posledný riadok v oblasti. |
from_type |
Upraví správanie parametra from. Možné hodnoty sú ABS (absolútne) a REL (relatívny). Predvolená hodnota je REL. |
to |
Rovnaké ako from, ale označuje koniec okna. V okne je zahrnutý posledný riadok. |
to_type |
Rovnaké ako from_type, ale upravuje správanie to. |
relation |
(Voliteľné) Výraz tabuľky, z ktorého sa vrátia výstupné riadky. Ak sa tento parameter použije vo výpočtoch vizuálu, akceptuje os vo vizuálnom tvare.
Ak je zadaný, všetky stĺpce v partitionBy musia pochádzať z neho alebo zo súvisiacej tabuľky.
Ak sa vynechá: – Musíte zadať orderBy explicitne.– Všetky orderBy výrazy a partitionBy musia byť plne kvalifikované názvy stĺpcov a musia pochádzať z jednej tabuľky.
– predvolene sa použije ALLSELECTED() všetkých stĺpcov v orderBy a partitionBy. |
orderBy |
(Voliteľné) Klauzula ORDERBY() obsahujúca výrazy, ktoré definujú spôsob zoradenia každej oblasti.
Ak sa vynechá: – Musíte zadať relation explicitne.
– Predvolene sa nastaví zoradenie podľa každého stĺpca v relation , ktorý ešte nie je zadaný v partitionBy. |
blanks |
(Voliteľné) Enumerácia, ktorá definuje spôsob narábania s prázdnymi hodnotami pri zoraďovaní relation alebo axis.
Podporované hodnoty sú:
Keď zadáte parameter aj blanks prázdne hodnoty vo ORDERBYfunkcii () pre jednotlivé výrazy, blanks pri výraze orderBy má prednosť príslušný výraz orderBy. Výrazy OrderBy bez blanks zadania parametra v blanks nadradenej funkcii. |
partitionBy |
(Voliteľné) Klauzula PARTITIONBY() obsahujúca stĺpce, ktoré definujú spôsob relation rozdelenia. Ak sa vynechá, relation sa považuje za jednu oblasť. |
matchBy |
(Voliteľné) Klauzula MATCHBY() obsahujúca stĺpce, ktoré definujú, ako sa majú zhodovať s údajmi a identifikovať aktuálny riadok. |
reset |
(Voliteľné) K dispozícii iba vo výpočtoch vizuálu. Udáva, či sa výpočet resetuje a na akej úrovni hierarchie stĺpcov tvaru vizuálu. Prijaté hodnoty sú: odkaz na pole na stĺpec v aktuálnom tvare vizuálu, NONE (predvolené), LOWESTPARENT, HIGHESTPARENTalebo celé číslo. Správanie závisí od celočíselného znamienka: – Ak je tento parameter vynechaný, výpočet sa nevynuluje. Zodpovedá NONE.
– ak je kladné, celé číslo identifikuje stĺpec začínajúci od najvyššej, nezávisle od zrna. HIGHESTPARENT zodpovedá 1.
– ak je záporné, celé číslo identifikuje stĺpec začínajúci od najnižšej hodnoty vo vzťahu k aktuálnemu zrnu. LOWESTPARENT je ekvivalentom čísla -1. |
Vrátená hodnota
Všetky riadky z okna.
Poznámky
S výnimkou stĺpcov pridaných funkciami DAX tabuľky, každý stĺpec v relation (keď matchBy nie je prítomný) alebo každý stĺpec v matchBy a partitionBy (ak matchBy je prítomný), musí mať zodpovedajúcu vonkajšiu hodnotu, ktorá pomôže definovať aktuálny riadok, na ktorom sa má pracovať. Ak from_type aj to_type obe majú hodnotu ABS, nasledujúce sa vzťahuje iba na stĺpce partitionBy :
- Ak existuje presne jeden zodpovedajúci vonkajší stĺpec, použije sa jeho hodnota.
- Ak neexistuje žiadny zodpovedajúci vonkajší stĺpec:
- WINDOW najprv určí všetky stĺpce, ktoré nemajú žiadny príslušný vonkajší stĺpec.
- Pre každú kombináciu existujúcich hodnôt pre tieto stĺpce v nadradenom kontexte WINDOW sa vyhodnotí WINDOWa vrátia sa zodpovedajúce riadky.
- WINDOWKonečný výstup predstavuje zjednotenie týchto riadkov.
- Ak existuje viac ako jeden zodpovedajúci vonkajší stĺpec, vráti sa chyba.
Ak relation funkcie tabuľky pridali všetky stĺpce DAX, vráti sa chyba.
Ak matchBy je prítomná, WINDOW pokúsi sa použiť matchBy a partitionBy stĺpce na identifikáciu riadka.
Ak matchBy nie je prítomný a stĺpce zadané v orderBy a partitionBy nemôžu jednoznačne identifikovať každý riadok v relation:
- WINDOW sa snaží nájsť najmenší počet ďalších stĺpcov požadovaných na jedinečnú identifikáciu každého riadka.
- Ak sa tieto stĺpce dajú nájsť, WINDOW automaticky pripojí tieto nové stĺpce k
orderBya každá oblasť sa zoradí pomocou tejto novej množiny stĺpcov orderBy. - Ak sa takéto stĺpce nedajú nájsť, vráti sa chyba.
Prázdna tabuľka sa vráti, ak:
- Zodpovedajúca vonkajšia hodnota stĺpca
orderByalebopartitionByneexistuje v rámcirelation. - Celé okno je mimo oblasti alebo začiatok okna je po jeho konci.
Ak použijete v WINDOW rámci vypočítaného stĺpca definovaného v tej istej tabuľke ako relationa orderBy hodnota sa vynechá, vráti sa chyba.
Ak je začiatok okna pred prvým riadkom, je nastavený na prvý riadok. Podobne, ak je koniec okna za posledným riadkom oblasti, nastaví sa na posledný riadok.
Môžete použiť reset iba vo vizuálnych výpočtoch a nemôžete ich použiť v kombinácii s orderBy alebo partitionBy. Ak reset je prítomná, môžete zadať argument axis , ale nie relationhodnotu .
Ak je hodnota absolútna reset (kladné celé číslo, HIGHESTPARENTalebo odkaz na pole) a výpočet sa vyhodnotí v hierarchii na cieľovej úrovni alebo nad ňou, výpočet sa resetuje pre každý jednotlivý prvok. To znamená, že funkcia sa vyhodnotí v rámci oblasti, ktorá obsahuje iba tento konkrétny prvok.
Príklady v tomto článku možno použiť so vzorovým modelom aplikácie Power BI Desktop Adventure Works DW 2020. Ak chcete získať model, pozrite si DAX ukážkový model.
Príklad 1 – mierka
Nasledujúca mierka:
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] ) )
)
Vráti 3-dňový priemer jednotkových cien pre každý produkt. Trojdňové okno pozostáva z troch dní, počas ktorých produkt mal predaj, nie nevyhnutne tri po sebe nasledujúce kalendárne dni.
Príklad 2 – mierka
Nasledujúca mierka:
RunningSum =
SUMX (
WINDOW (
1,
ABS,
0,
REL,
ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] ),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Vráti priebežný súčet celkového predaja podľa počtu mesiacov v roku a reštartovanie každého fiškálneho roka:
| Rok | Číslo mesiaca v roku | Suma predaja | Medzisum |
|---|---|---|---|
| FR2018 | 1 | 1 327 675 USD | 1 327 675 USD |
| FR2018 | 2 | 3 936 463 USD | 5 264 138 USD |
| FR2018 | 3 | 700 873 USD | 5 965 011 USD |
| FR2018 | 4 | 1 519 275 USD | 7 484 286 USD |
| FR2018 | 5 | 2 960 378 USD | 10 444 664 USD |
| FR2018 | 6 | 1 487 671 USD | 11 932 336 USD |
| FR2018 | 7 | 1 423 357 USD | 13 355 693 USD |
| FR2018 | 8 | 2 057 902 USD | 15 413 595 USD |
| FR2018 | 9 | 2 523 948 USD | 17 937 543 USD |
| FR2018 | 10 | 561 681 USD | 18 499 224 USD |
| FR2018 | 11 | 4 764 920 USD | 23 264 145 USD |
| FR2018 | 12 | 596 747 USD | 23 860 891 USD |
| FR2019 | 1 | 1 847 692 USD | 1 847 692 USD |
| FR2019 | 2 | 2 829 362 USD | 4 677 054 USD |
| FR2019 | 3 | 2 092 434 USD | 6 769 488 USD |
| FR2019 | 4 | 2 405 971 USD | 9 175 459 USD |
| FR2019 | 5 | 3 459 444 USD | 12 634 903 USD |
| FR2019 | 6 | 2 850 649 USD | 15 485 552 USD |
| FR2019 | 7 | 2 939 691 USD | 18 425 243 USD |
| FR2019 | 8 | 3 964 801 USD | 22 390 045 USD |
| FR2019 | 9 | 3 287 606 USD | 25 677 650 USD |
| FR2019 | 10 | 2 157 287 USD | 27 834 938 USD |
| FR2019 | 11 | 3 611 092 USD | 31 446 030 USD |
| FR2019 | 12 | 2 624 078 USD | 34 070 109 USD |
| FR2020 | 1 | 3 235 187 USD | 3 235 187 USD |
| FR2020 | 2 | 4 070 046 USD | 7 305 233 USD |
| FR2020 | 3 | 4 429 833 USD | 11 735 066 USD |
| FR2020 | 4 | 4 002 614 USD | 15 737 680 USD |
| FR2020 | 5 | 5 265 797 USD | 21 003 477 USD |
| FR2020 | 6 | 3 465 241 USD | 24 468 717 USD |
| FR2020 | 7 | 3 513 064 USD | 27 981 781 USD |
| FR2020 | 8 | 5 247 165 USD | 33 228 947 USD |
| FR2020 | 9 | 5 104 088 USD | 38 333 035 USD |
| FR2020 | 10 | 3 542 150 USD | 41 875 184 USD |
| FR2020 | 11 | 5 151 897 USD | 47 027 081 USD |
| FR2020 | 12 | 4 851 194 USD | 51 878 275 USD |
Príklad 3 – výpočet vizuálu
Nasledujúci výpočet vizuálu DAX dotaz:
TotalSalesRunningSumByYear =
SUMX ( WINDOW ( 0, ABS, 0, REL, ROWS, HIGHESTPARENT ), [SalesAmount] )
Vráti kumulatívny celkový predaj podľa mesiaca vypočítaný pozdĺž každého roka. S rovnakým výsledkom sa môže použiť hodnota 1 namiesto HIGHESTPARENT.
Snímka obrazovky nižšie znázorňuje maticu vizuálu a výraz výpočtu vizuálu:
výpočtu vizuálu
Príklad 4 – výpočet vizuálu
Nasledujúci výpočet vizuálu DAX dotaz:
TotalSalesRunningSumByQuarter =
SUMX ( WINDOW ( 0, ABS, 0, REL,, -1 ), [SalesAmount] )
Vráti kumulatívny celkový predaj podľa mesiaca vypočítaný pozdĺž každého štvrťroku.
S rovnakým výsledkom sa môže použiť hodnota LOWESTPARENT namiesto hodnoty -1.