Dotazy DAX
Klienti zostáv, ako napríklad Power BI a Excel, vykonávajú dotazy jazyka DAX vždy, keď sa pole umiestni do zostavy alebo pri použití filtra. Pomocou nástroja SQL Server Management Studio (SSMS), Zostavovač zostáv služby Power BI a nástrojov open-source, ako je napríklad DAX Studio, môžete vytvárať a spúšťať vlastné dotazy jazyka DAX. Dotazy DAX vracajú výsledky ako tabuľku priamo v nástroji, čo vám umožní rýchlo vytvoriť a otestovať výkon vzorcov DAX.
Pred výučbou dotazov je dôležité mať solídne znalosti o základoch jazyka DAX. Ak ste tak ešte neurobili, pozrite si prehľad jazyka DAX.
Kľúčové slová
Dotazy DAX majú jednoduchú syntax skladanú len z jedného požadovaného kľúčového slova, EVALUATE a niekoľkých voliteľných kľúčových slov: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE a COLUMN. Každé kľúčové slovo definuje príkaz, ktorý sa bude používať počas trvania dotazu.
EVALUATE (povinné)
Na najzákladnejšej úrovni je dotaz DAX príkaz EVALUATE obsahujúci výraz tabuľky. Vyžaduje sa aspoň jeden príkaz EVALUATE, no dotaz môže obsahovať ľubovoľný počet príkazov EVALUATE.
VYHODNOTIŤ syntax
EVALUATE <table>
VYHODNOTIŤ parametre
Obdobie | Definícia |
---|---|
table | Výraz tabuľky. |
Príklad vyhodnotenia
EVALUATE
'Internet Sales'
Vráti všetky riadky a stĺpce z tabuľky Internetový predaj ako tabuľku.
ORDER BY (Voliteľné)
Voliteľné kľúčové slovo ORDER BY definuje jeden alebo viac výrazov, ktoré sa používajú na zoradenie výsledkov dotazu. Akýkoľvek výraz, ktorý možno vyhodnotiť pre každý riadok výsledku, je platný.
ORDER BY Syntax
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]
Parametre ORDER BY
Obdobie | Definícia |
---|---|
Výraz | Akýkoľvek výraz DAX, ktorý vracia jednu skalárnu hodnotu. |
ASC | (predvolené) Vzostupné poradie zoradenia. |
POPIS | Zostupné poradie zoradenia. |
Príklad ZORADENIA PODĽA
EVALUATE
'Internet Sales'
ORDER BY
'Internet Sales'[Order Date]
Vráti všetky riadky a stĺpce z tabuľky Internetový predaj vo vzostupnom poradí podľa dátumu objednávky, ako tabuľku.
START AT (Voliteľné)
Voliteľné kľúčové slovo START AT sa používa v rámci klauzuly ORDER BY . Definuje hodnotu, pri ktorej sa začnú výsledky dotazu.
START AT Syntax
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]
Parametre START AT
Obdobie | Definícia |
---|---|
hodnota | Konštantná hodnota. Nemôže to byť výraz. |
parameter | Názov parametra v príkaze XMLA s predponou znaku @ . |
Poznámky k start AT
Argumenty START AT majú korešpondenciu one-to-one so stĺpcami v klauzule ORDER BY. V klauzule START AT môže byť toľko argumentov, koľko je ich v klauzule ORDER BY, ale nie viac. Prvý argument v parametre START AT definuje počiatočnú hodnotu v stĺpci 1 stĺpcov ORDER BY. Druhý argument v parametre START AT definuje počiatočnú hodnotu v stĺpci 2 stĺpcov ORDER BY v rámci riadkov, ktoré spĺňajú prvú hodnotu pre stĺpec 1.
Príklad pre START AT
EVALUATE
'Internet Sales'
ORDER BY
'Internet Sales'[Sales Order Number]
START AT "SO7000"
Vráti všetky riadky a stĺpce z tabuľky Internetový predaj vo vzostupnom poradí podľa čísla predajnej objednávky, počnúc číslom SO7000.
DEFINE (Voliteľné)
Voliteľné kľúčové slovo DEFINE predstavuje jednu alebo viac definícií vypočítanej entity, ktoré existujú len počas trvania dotazu. Definície predchádzajú príkazu EVALUATE a sú platné pre všetky príkazy EVALUATE v dotaze. Definície môžu byť premenné, mierky, tabuľky1 a stĺpce1. Definície môžu odkazovať na iné definície, ktoré sa objavujú pred alebo za aktuálnou definíciou. Ak je v dotaze zahrnuté kľúčové slovo DEFINE, vyžaduje sa aspoň jedna definícia.
DEFINOVANIE syntaxe
[DEFINE
(
(MEASURE <table name>[<measure name>] = <scalar expression>) |
(VAR <var name> = <table or scalar expression>) |
(TABLE <table name> = <table expression>) |
(COLUMN <table name>[<column name>] = <scalar expression>) |
) +
]
(EVALUATE <table expression>) +
DEFINOVANIE parametrov
Obdobie | Definícia |
---|---|
Entity | MEASURE, VAR, TABLE1 alebo COLUMN1. |
názov | Názov mierky, premennej var, tabuľky alebo definície stĺpca. Nemôže to byť výraz. Názov nemusí byť jedinečný. Názov existuje len počas trvania dotazu. |
Výraz | Akýkoľvek výraz DAX, ktorý vracia tabuľku alebo skalárnu hodnotu. Výraz môže použiť ktorúkoľvek zo zadefinovaných entít. Ak je potrebné skonvertovať skalárny výraz na výraz tabuľky, zabaľte výraz do konštruktora tabuľky zloženými zátvorkou {} alebo použite ROW() funkciu na vrátenie tabuľky s jedným riadkom. |
[1]Upozornenie: Definície tabuliek a stĺpcov v rozsahu dotazu sú určené len na interné použitie. Hoci výrazy TABUĽKA a STĹPEC môžete definovať pre dotaz bez syntaktickej chyby, môžu spôsobovať chyby v režime runtime a neodporúčajú sa.
DEFINOVANIE poznámok
Dotaz DAX môže mať viacero príkazov EVALUATE, ale môže mať iba jeden príkaz DEFINE. Definície v príkaze DEFINE sa môžu použiť na všetky príkazy EVALUATE v dotaze.
V príkaze DEFINE sa vyžaduje aspoň jedna definícia.
Definície mierky pre dotaz prepíšu mierky modelu s rovnakým názvom, ale používajú sa len v rámci dotazu. Nebudú mať vplyv na mierku modelu.
Názvy funkcie VAR majú jedinečné obmedzenia. Ďalšie informácie nájdete v téme VAR – parametre.
Príklad definovania
DEFINE
MEASURE 'Internet Sales'[Internet Total Sales] =
SUM ( 'Internet Sales'[Sales Amount] )
EVALUATE
SUMMARIZECOLUMNS (
'Date'[Calendar Year],
TREATAS (
{
2013,
2014
},
'Date'[Calendar Year]
),
"Total Sales", [Internet Total Sales],
"Combined Years Total Sales",
CALCULATE (
[Internet Total Sales],
ALLSELECTED ( 'Date'[Calendar Year] )
)
)
ORDER BY [Calendar Year]
Vráti vypočítané celkové predaje za roky 2013 a 2014 a vypočítaný celkový predaj spolu za roky 2013 a 2014 ako tabuľku. Mierka v príkaze DEFINE Celkový internetový predaj sa používa vo výraze Celkový predaj, ako aj výraze Celkový predaj spolu.
Parametre v dotazoch jazyka DAX
Dobre definovaný príkaz dotazu DAX možno parametrizovať a potom opakovane používať s použitím len zmien v hodnotách parametra.
Metóda Execute Method (XMLA) má prvok kolekcie Prvok parametrov (XMLA ), ktorý umožňuje definovať a priradiť hodnoty parametrov. Každý prvok v rámci kolekcie Parameter Element (XMLA) definuje názov parametra a jeho hodnotu.
Referenčné parametre XMLA tým, že predurujú názov parametra so znakom @
. Na akomkoľvek mieste v syntaxi, kde je hodnota povolená, možno hodnotu nahradiť volaním parametra. Všetky parametre XMLA sú zadané ako text.
Dôležité
Parametre definované v časti parametre a nepoužiné v prvku <STATEMENT> vygenerujú chybovú odpoveď v XMLA. Použité parametre, nedefinované v prvku <Parametre vygenerujú> chybovú odpoveď v XMLA.
Súvisiaci obsah
Pripomienky
https://aka.ms/ContentUserFeedback.
Pripravujeme: V priebehu roka 2024 postupne zrušíme službu Problémy v službe GitHub ako mechanizmus pripomienok týkajúcich sa obsahu a nahradíme ju novým systémom pripomienok. Ďalšie informácie nájdete na stránke:Odoslať a zobraziť pripomienky pre