Jaa


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:n avulla voit parantaa tuottavuutta entisestään Copilotin avulla ja kirjoittaa kyselyitä Desktop Webin -kyselynäkymässä. Power BI -työkalujen lisäksi DAX kyselyitä voidaan suorittaa Fabric -muisti kirjoissa käyttämällä semanttista linkkiä semanttisten mallien tietojen lukemiseen Pythonilla, andExecute Queries REST API, joka on myös käytettävissä Power Automate. Muiden työkalujen, kuten SQL Server Management Studio (SSMS), Power BI Report Builder, and avoimen lähdekoodin työkalujen, kuten DAX Studio, avulla voit myös luoda and suorittaa DAX kyselyitä.

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:

  1. Yleiset DAX funktiot, jotka tuottavat taulukon, kuten SUMMARIZE, SUMMARIZECOLUMNS, SELECTCOLUMNS, FILTER, UNION, TOPN, ADDCOLUMNS, DATATABLE, and monia muita, tuottavat tulostaulukon EVALUATE.
  2. 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ä.
  3. 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.

Näyttökuva, jossa näytetään, miten DAX-kyselyn EVALUATE käytetään Power BI Desktopin DAX-kyselynäkymässä.

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.

Näyttökuva, jossa näytetään, miten DAX-kyselyn ORDER BY käytetään Power BI Desktopin DAX-kyselynäkymässä.

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.

Näyttökuva, jossa näytetään, miten voit käyttää DAX-kyselyn TOPNandORDER BYPower BI Desktopin DAX-kyselynäkymässä.

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.

Näyttökuva, jossa näytetään, miten voit käyttää DAX-kyselyn ORDER BYandSTART ATPower BI Desktopin DAX-kyselynäkymässä.

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,1, sarakkeita 1. Määritelmät voivat viitata muihin määritelmiin, jotka näkyvät ennen or nykyisen määrityksen jälkeen. Vähintään yksi määritys vaaditaan, ifDEFINE-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ä.

Näyttökuva, jossa näytetään, miten DAX-kyselyn DEFINE käytetään Power BI Desktopin DAX-kyselynäkymässä.

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ä.

Näyttökuva, jossa näytetään, miten voit käyttää DAX-kyselyn DEFINEMEASUREPower BI Desktopin DAX kyselynäkymässä.

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.

DAX statements SUMMARIZECOLUMNS