DAX kyselyt
Raportoivat asiakkaat, kuten Power BI and Excel, suorittavat DAX kyselyitä aina, kun visualisoinnit näytetään raportissa, or taulukkoon lisätty kenttä, and nämä DAX kyselyt mukautuvat, kun filter otetaan käyttöön. Power BI Desktopin suorituskyvyn analysointi - voivat näyttää nämä DAX kyselyt andeven suorittaa ne DAX kyselynäkymässä.
Voit luoda and suorittaa omia DAX kyselyitä käyttämällä DAX-kyselynäkymänPower BI Desktop orDAX kyselyitä PowerPower BI -palvelussa. Microsoft Fabric
DAX kyselyt palauttavat tuloksia taulukon right työkalussa, voit luoda nopeasti and testata DAX kaavojen suorituskykyä mittareissa or vain tarkastella tietoja semanttisessa mallissasi. INFO and INFO. NÄYTÄ DAX-funktiot voivat myös saada tietoja semanttisesta mallistasi, kuten taulukoiden, sarakkeiden, mittareiden and paljon muuta.
Ennen kyselyihin tutustumista on tärkeää ymmärtää DAX perusteet. If et ole vielä tutustunut DAX yleiskatsaukseen.
Avainsanat
DAX kyselyissä on yksinkertainen syntaksi, joka koostuu vain yhdestä pakollisesta avainsanasta, EVALUATE. EVALUATE jälkeen on taulukkolauseke, kuten DAX-funktio or taulukon nimen, joka tulostaa tulostaulukkoa suorituksen yhteydessä. Tulostaulukon tulostavat taulukkolausekkeet ovat seuraavat:
- Yleiset DAX funktiot, jotka tuottavat taulukon, kuten SUMMARIZE, SUMMARIZECOLUMNS, SELECTCOLUMNS, FILTER, UNION, TOPN, ADDCOLUMNS, DATATABLE, and monia muita, tuottavat tulostaulukon EVALUATE.
- Taulukot mallissa, kun niihin viitataan nimen perusteella, toimivat EVALUATE kanssa tulostamaan tulostaulukon, joka näyttää tiedot taulukossa. Esimerkiksi EVALUATE Taulukon nimi - voidaan suorittaa DAX kyselynä.
- Mallin mittarit or mikä tahansa DAX kaava, joka palauttaa skalaarisen value, toimivat EVALUATE kanssa näyttääkseen value tulostaulukkona, kun ne on sisällytetty aaltosulkeisiin. Esimerkiksi EVALUATE {[Total Sales]}orEVALUATE {COUNTROWS('Sales')} voidaan suorittaa DAX-kyselynä. Näitä kutsutaan taulukkokonstruktoriksi.
DAX kyselyissä on useita valinnaisia avainsanoja: ORDER BY, START AT, DEFINE, MEASURE, VAR, TAULUKKO and SARAKE.
EVALUATE (Pakollinen)
Perustasolla DAX kysely on EVALUATE
lauseke, joka sisältää taulukkolausekkeen. Vähintään yksi EVALUATE -lauseke vaaditaan, mutta kysely voi sisältää minkä tahansa määrän EVALUATEstatements.
EVALUATE Syntaksi
EVALUATE <table>
EVALUATE-parametrit
Termi | Määritelmä |
---|---|
table |
Taulukkolauseke. |
EVALUATE esimerkki
EVALUATE
'Sales Order'
Palauttaa myyntitilaustaulukon all riviä and sarakkeet tulostaulukkona. Tätä voidaan rajoittaa käyttämällä TOPNorFILTER, and lajiteltuna ORDER BYkanssa.
ORDER BY (valinnainen)
Valinnainen ORDER BY
-avainsana määrittää yhden or useamman sarakkeen kyselyssä, or kyselytulosten lajittelemiseen käytetyt lausekkeet. Mikä tahansa lauseke, joka voidaan laskea jokaisella tuloksen rivillä, on kelvollinen. Myös mikä tahansa kyselyn sarake on kelvollinen.
Lajitteleminen sarakeominaisuuden mukaan semanttisissa malleissa not koske DAX kyselytuloksissa. If sarake tulee lajitella mallin eri sarakkeen mukaan, kuten Month Nimi-sarakkeen tapauksessa, lajittelu sarakkeen mukaan tulee sisällyttää myös ORDER BYkäytettävään DAX kyselyyn.
ORDER BY Syntaksi
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]
ORDER BY-parametrit
Termi | Määritelmä |
---|---|
expression |
Mikä tahansa DAX-lauseke, joka palauttaa yksittäisen skalaariarvon valueDAX kyselyyn sisältyvän or sarakkeen. |
ASC |
(oletus) Nouseva lajittelujärjestys. |
DESC |
Laskeva lajittelujärjestys. |
ORDER BY esimerkki
EVALUATE
SUMMARIZECOLUMNS(
// Group by columns
'Date'[Month Name],
'Date'[Month of Year],
'Product'[Category],
// Optional filters
FILTER(
VALUES('Product'[Category]),
[Category] = "Clothing"
),
// Measures or explicit DAX formulas to aggregate and analyze the data by row
"Orders", [Orders],
"Avg Profit per Order", DIVIDE(
[Total Sales Profit],
[Orders]
)
)
// DAX queries do not use sort order defined in Power BI,
// sort by columns must be included in the DAX query to be used in order by
ORDER BY 'Date'[Month of Year] ASC
Palauttaa vaatetilaukset andaverage tilauskohtaisen tuoton monthmukaan nousevassa järjestyksessä tuloksena monthmukaan.
TOPN valitsee not palautettavien rivien määrän ORDER BYmääritetyn lajittelujärjestyksen perusteella. TOPN syntaksi on sen sijaan sellainen, että se voi valinnaisesti määrittää lajittelun, ennen kuin 100 ylintä riviä palautetaan. ORDER BY lajittelee vain TOPNpalauttaman tulostaulukon.
EVALUATE
TOPN(
100,
'Sales Order',
// The way the data is sorted before the top 100 rows are selected
'Sales Order'[SalesOrderLineKey], ASC
)
// The way the data is sorted for the results
ORDER BY
'Sales Order'[Sales Order] ASC,
'Sales Order'[Sales Order Line] ASC
Palauttaa 100 suurinta SalesOrderLienKey-lajitteluperusteena lajiteltua myyntitilausta nousevasti ja lajittelee sitten first tulokset myyntitilauksen mukaan ja sitten myyntitilausrivin mukaan.
START AT (valinnainen)
Valinnaista START AT
-avainsanaa käytetään ORDER BY
-lauseen sisällä. Se määrittää value, jolla kyselyn tulokset alkavat.
START AT Syntaksi
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]
START AT-parametrit
Termi | Määritelmä |
---|---|
value |
Vakiona value. Ei voi olla lauseke. |
parameter |
XMLA-lausekkeen parametrin nimi, jonka etuliitteenä on @ . |
START AT huomautukset
START AT argumenteilla on yksi yhteen -vastaavuus ORDER BY -lausekkeen sarakkeiden kanssa. START AT -lauseessa voi olla yhtä monta argumenttia kuin ORDER BY-lauseessa on, mutta not enemmän. START AT first-argumentti määrittää aloitus valueORDER BY sarakkeiden sarakkeessa 1. START AT second-argumentti määrittää ORDER BY sarakkeen 2 aloitus value riveillä, jotka täyttävät sarakkeen 1 firstvalue.
START AT esimerkki
EVALUATE
'Sales Order'
ORDER BY 'Sales Order'[Sales Order] ASC
// Start at this order, orders before this order will not be displayed
START AT "SO43661"
Palauttaa all Sales Order -taulukon sarakkeet nousevassa järjestyksessä Myyntitilaus-arvon mukaan alkaen SO43661. Tätä myyntitilausta ennen olevat rivit not sisällytetä tulostaulukkoon.
DEFINE (valinnainen)
Valinnainen DEFINE
-avainsana esittelee yhden or enemmän laskettuja entiteettimääritelmiä, jotka ovat olemassa vain kyselyn duration. toisin kuin EVALUATE
, DAX kyselyssä voi olla vain yksi DEFINE
lohko, jossa on yksi or enemmän määrityksiä.
DEFINE
on oltava firstEVALUATE
-lausekkeen edessä, and kelpaavat kyselyn allEVALUATEstatements. Määritelmät voivat olla muuttujia, mittareita, taulukoita,DEFINE
-avainsana sisältyy kyselyyn.
DEFINE MEASURE
on yleinen skenaario luoda uusia mittareita or muokata olemassa olevia mittareita semanttisessa mallissa. Kun measure on jo olemassa mallissa, DAX kysely käyttää kyselyssä määritettyä measureDAX kaavaa. Tästä on hyötyä mittareiden testaamisessa DAX kyselyllä ennen mallin päivittämistä.
DEFINE MEASURE
on myös hyödyllistä luoda lisäanalyyseja DAX-kaavoilla tietylle DAX kyselylle, jossa sinulla not voi olla oikeus lisätä mallia measureor sen not täytyy olla mallissa.
DEFINE Syntaksi
[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>) +
DEFINE-parametrit
Termi | Määritelmä |
---|---|
Entity |
MEASURE, VAR, TABLE1, or COLUMN1. |
name |
measure, var, table, or -sarakemäärityksen nimi. Se ei voi olla lauseke. Nimen not oltava yksilöivä. Nimi on olemassa vain kyselyn duration. |
expression |
Mikä tahansa DAX-lauseke, joka palauttaa taulukon or skalaarisen value. Lauseke voi käyttää mitä tahansa määritettyjä entiteettejä.
If on tarpeen convert skalaarilauseke taulukkolausekkeeksi, rivittää lauseke taulukkokonstruktorin sisälle aaltosulkeilla {} , or käyttää ROW() -funktiota yksittäisen rivin taulukon palauttamiseen. |
[1]Huomio: Kyselyn laajuustaulukon and SARAKE -määritelmät on tarkoitettu vain sisäiseen käyttöön. Vaikka voit define TABLE and COLUMN -lausekkeita kyselylle ilman syntaksia error, ne saattavat aiheuttaa suorituspalveluvirheitä, and suositellaan not.
DEFINE huomautukset
DAX kyselyllä voi olla useita EVALUATEstatements, mutta siinä voi olla vain yksi DEFINE-lauseke. DEFINE -lausekkeen määritelmät voivat koskea mitä tahansa kyselyn EVALUATEstatements.
DEFINE-lausekkeessa vaaditaan vähintään yksi määritys.
Measure määritykset ohittavat samannimisen mallin mittarit, mutta niitä käytetään vain kyselyssä. Ne vaikuttavat not mallin measure.
VAR nimillä on yksilöllisiä rajoituksia. Lisätietoja on artikkelissa VAR – Parametrit.
DEFINE esimerkki
DEFINE
VAR _firstyear = MIN('Date'[Fiscal Year])
VAR _lastyear = MAX('Date'[Fiscal Year])
TABLE 'Unbought products' = FILTER('Product', [Orders] + 0 = 0)
COLUMN 'Unbought products'[Year Range] = _firstyear & " - " & _lastyear
MEASURE 'Unbought products'[Unbought products] = COUNTROWS('Unbought products')
EVALUATE
'Unbought products'
EVALUATE
{[Unbought products]}
Palauttaa DAX kyselyssä määritetyn taulukon, joka näyttää muokkaamattomat tuotteet, joilla on määritettyjä muuttujia viittaava määritetty sarake. Lisäksi määritetään measure, and arvioidaan siten, että se count harkitsemattomien tuotteiden rivejä.
DEFINE
MEASURE 'Pick a sales measure'[Orders] = DISTINCTCOUNT('Sales Order'[Sales Order])
MEASURE 'Pick a sales measure'[Customers] = CALCULATE(
COUNTROWS(Customer),
FILTER(
'Sales',
[Orders] > 0
)
)
MEASURE 'Pick a sales measure'[Orders per Customer] = DIVIDE(
[Orders],
[Customers],
0
)
EVALUATE
SUMMARIZECOLUMNS(
'Date'[Fiscal Year],
"Orders", [Orders],
"Customers", [Customers],
"Orders per Customer", [Orders per Customer]
)
Palauttaa taulukon, jossa arvioidaan kolmea määritettyä mittaria näyttämään tulokset tilikauden yearmukaan. All mallissa on myös mittareita, and Asiakaskohtaisia tilauksia muokataan DAX kyselyssä.
DAX kyselyiden parametrit
Hyvin määritetty DAX kyselylauseke voidaan parametrisoitu and käyttää sitten yli and käyttäen vain muutoksia parametrin values.
Execute Method (XMLA) -menetelmässä on Parameters Element (XMLA) - kokoelmaelementti, joka mahdollistaa parametrien määrittämisen andvalue. Kokoelmassa jokainen Parameter Element (XMLA) -elementti määrittää parametrin nimen, and siihen value.
Viittaa XMLA-parametreihin lisäämällä parametrin nimen etuliitteeksi @
merkki. Missä tahansa syntaksin kohdassa, jossa sallitaan value, value voidaan korvata parametrikutsulla.
All XMLA-parametrit kirjoitetaan tekstinä.
Tärkeä
Parametriosiossa määritetyt parametrit andnot joita käytetään <STATEMENT>
-elementissä generate XMLA:n error vastaus.
<Parameters>
-elementissä määritetyt andnot käytetyt parametrit generate XMLA:n error vastauksen generate.