Jaa


DAX kyselyt

Power BI:n ja Excelin kaltaiset raportoivat asiakkaat suorittavat DAX kyselyitä aina, kun visualisointeja näytetään raportissa tai taulukkoon lisätään kenttä. Nämä DAX kyselyt mukautuvat, kun suodatinta käytetään. Power BI Desktopin suorituskyvyn analysointi - voivat näyttää nämä DAX kyselyt ja jopa suorittaa ne DAX kyselynäkymässä.

Voit luoda ja suorittaa omia kyselyitä käyttämällä kyselynäkymän Power BI Desktopissa tai Write -kyselyitä. Microsoft Fabric avulla voit parantaa tuottavuutta entisestään Copilotin avulla ja kirjoittaa DAX kyselyitä,DAX Desktopin tai verkon kyselynäkymässä. Power BI -työkalujen lisäksi DAX kyselyitä voidaan suorittaa Fabric -muistikirjoissa, käyttämällä semanttista linkkiä semanttisten mallien tietojen lukemiseen Pythonilla, ja Execute Queries REST API, joka on myös käytettävissä Power Automate. Muiden työkalujen, kuten SQL Server Management Studio (SSMS), Power BI Report Builderin, ja avoimen lähdekoodin työkalujen, kuten DAX Studio, avulla voit myös luoda ja suorittaa DAX kyselyitä.

DAX kyselyt palauttavat tuloksia taulukkona suoraan työkalussa, voit luoda ja testata nopeasti DAX kaavojen suorituskykyä mittareissa tai vain tarkastella tietoja semanttisessa mallissasi. INFO ja INFO. NÄYTÄ DAX-funktiot voivat myös saada tietoja semanttisesta mallistasi, kuten taulukoiden, sarakkeiden, mittareiden ja paljon muuta.

Ennen kyselyihin tutustumista on tärkeää ymmärtää DAX perusteet. Muista tutustua DAX yleiskatsaukseen.

Avainsanat

DAX kyselyissä on yksinkertainen syntaksi, joka koostuu vain yhdestä pakollisesta avainsanasta, EVALUATE. EVALUATE jälkeen on taulukkolauseke, kuten DAX-funktio tai taulukon nimi, joka suorittamisen aikana tulostaa tulostaulukon. Tulostaulukon tulostavat taulukkolausekkeet ovat seuraavat:

  1. Yleiset DAX funktiot, jotka tuottavat taulukon, kuten SUMMARIZE, SUMMARIZECOLUMNS, SELECTCOLUMNS, FILTER, UNION, TOPN, ADDCOLUMNS, DATATABLE, ja monet muut, 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 tai minkä tahansa kaavan DAX mittarit, jotka palauttavat skalaariarvon, toimivat yhdessä EVALUATE kanssa näyttääkseen arvon tulostaulukkona aaltosulkeiden sisällä. Esimerkiksi EVALUATE {[Total Sales]} tai EVALUATE {COUNTROWS('Sales')} voidaan suorittaa DAX kyselynä. Näitä kutsutaan taulukkokonstruktoriksi.

DAX kyselyihin liittyy useita valinnaisia avainsanoja: ORDER BY, START AT, DEFINE, MEASURE, VAR, TAULUKKO ja 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 EVALUATE lausekkeita.

EVALUATE Syntaksi

EVALUATE <table>

EVALUATE-parametrit

Termi Määritelmä
table Taulukkolauseke.

EVALUATE esimerkki

EVALUATE
	'Sales Order'

Palauttaa kaikki Sales Order -taulukon rivit ja sarakkeet tulostaulukkona. Tätä voidaan rajoittaa käyttämällä TOPN tai FILTER, ja lajitellaan ORDER BYmukaan.

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

ORDER BY (valinnainen)

Valinnainen ORDER BY-avainsana määrittää yhden tai useamman sarakkeen kyselyssä tai lausekkeissa, joita käytetään kyselyn tulosten lajittelemiseen. Mikä tahansa lauseke, joka voidaan laskea jokaisella tuloksen rivillä, on kelvollinen. Myös mikä tahansa kyselyn sarake on kelvollinen.

Semanttisten mallien Sarake-ominaisuuden perusteella lajitteleminen ei koske DAX kyselyn tuloksia. Jos sarake tulee lajitella mallin eri sarakkeen mukaan, kuten Kuukauden nimi -tapauksessa, lajittelu sarakkeen mukaan tulee myös sisällyttää 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 tai DAX kyselyyn sisältyvän 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 ja keskimääräisen tuoton tilausta kohden kuukauden mukaan nousevassa järjestyksessä kuukauden mukaan tulostaulukkona.

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

TOPN ei valitse palautettavien rivien määrää 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 parasta SalesOrderLienKey-lajitteluperusteen mukaan lajiteltua myyntitilausta nousevassa järjestyksessä ja lajittelee sitten tulokset ensin myyntitilauksen mukaan ja sitten myyntitilausrivin mukaan.

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

START AT (valinnainen)

Valinnaista START AT-avainsanaa käytetään ORDER BY-lauseen sisällä. Se määrittää arvon, 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 Vakioarvo. 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 ei enempää. START AT ensimmäinen argumentti määrittää aloitusarvon sarakkeessa 1 ORDER BY sarakkeista. START AT toinen argumentti määrittää aloitusarvon ORDER BY sarakkeiden sarakkeessa 2 niiden rivien sisällä, jotka kohtaavat sarakkeen 1 ensimmäisen arvon.

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 kaikki Myyntitilaus-taulukon sarakkeet nousevassa järjestyksessä myyntitilauksen mukaan alkaen SO43661. Tätä myyntitilausta ennen olevia rivejä ei sisällytetä tulostaulukkoon.

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

DEFINE (valinnainen)

Valinnainen DEFINE -avainsana esittelee yhden tai useamman lasketun entiteetin määrityksen, joka on olemassa vain kyselyn ajan. EVALUATEpoiketen DAX kyselyssä voi olla vain yksi DEFINE lohko, jossa on vähintään yksi määritys. DEFINE on oltava ennen ensimmäistä EVALUATE -lauseketta, ja ne ovat kelvollisia kaikille kyselyn EVALUATE lausekkeille. Määritelmät voivat olla muuttujia, mittareita, taulukoita,1, ja sarakkeita,1. Määritelmät voivat viitata muihin määritelmiin, jotka näkyvät ennen nykyistä määritelmää tai sen jälkeen. Vähintään yksi määritys vaaditaan, jos DEFINE-avainsana sisältyy kyselyyn.

DEFINE MEASURE on yleinen skenaario luoda uusia mittareita tai muokata olemassa olevia mittareita semanttisessa mallissa. Kun mittari on jo olemassa mallissa, DAX kysely käyttää kyselyssä määritettyä mittaria DAX 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 ei ehkä ole oikeutta lisätä mallimittaria tai sitä ei tarvitse saada malliin.

DEFINE Syntaksi

[DEFINE 
    (
     (MEASURE <table name>[<measure name>] = <scalar expression>) | 
     (VAR <var name> = <table or scalar expression>) |
     (TABLE <table name> = <virtual table definition>) | 
     (COLUMN <table name>[<column name>] = <scalar expression>) | 
    ) + 
]

(EVALUATE <table expression>) +

DEFINE-parametrit

Termi Määritelmä
Entity MEASURE, VAR, TABLE1tai SARAKE,1.
name Mittari-, var-, taulukko- tai sarakemäärityksen nimi. Se ei voi olla lauseke. Nimen ei tarvitse olla yksilöivä. Nimi on olemassa vain kyselyn ajan.
expression Mikä tahansa DAX lauseke, joka palauttaa taulukon tai skalaariarvon. Lauseke voi käyttää mitä tahansa määritettyjä entiteettejä. Jos skalaarilauseke on muunnettava taulukkolausekkeeksi, rivitä lauseke taulukkokonstruktorin sisälle aaltosulkeilla {}tai palauta yksirivinen taulukko ROW()-funktiolla.

[1]Huomio: suodatetut TAULUKKO- ja SARAKEmääritelmät on tarkoitettu vain sisäiseen käyttöön. Vaikka voit määrittää kyselyn TAULUKKO- ja SARAKE-lausekkeita ilman syntaksivirheitä, ne saattavat aiheuttaa suorituksenaikaisia virheitä, eikä niitä suositella.

DEFINE huomautukset

  • DAX kyselyssä voi olla useita EVALUATE-lauseita, mutta siinä voi olla vain yksi DEFINE-lauseke. DEFINE -lausekkeen määritelmät voivat koskea mitä tahansa kyselyn EVALUATE lausekkeita.

  • DEFINE-lausekkeessa vaaditaan vähintään yksi määritys.

  • Kyselyn mittarimääritykset ohittavat samannimisen mallin mittarit, mutta niitä käytetään vain kyselyssä. Ne eivät vaikuta mallin mittariin.

  • 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. Mittari määritetään ja lasketaan myös sellaisten tuotteiden rivien laskemiseksi, joita ei ole muotoiltu.

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

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 tulosten näyttämiseksi tilivuoden mukaan. Mallissa on myös kaikki mittarit, ja asiakaskohtaisia tilauksia muokataan DAX kyselyssä.

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

DAX kyselyiden parametrit

Hyvin määritetty DAX kyselylauseke voidaan parametrisoitua ja käyttää sitten uudelleen ja uudelleen vain parametriarvojen muutoksilla.

Execute Method (XMLA) -menetelmässä on Parameters Element (XMLA) - kokoelmaelementti, joka sallii parametrien määrittämisen ja arvon määrittämisen sille. Kokoelmassa jokainen Parameter Element (XMLA) - -elementti määrittää parametrin nimen ja arvon.

Viittaa XMLA-parametreihin lisäämällä parametrin nimen etuliitteeksi @ merkki. Missä tahansa syntaksin kohdassa, jossa sallitaan arvo, arvo voidaan korvata parametrikutsulla. Kaikki XMLA-parametrit kirjoitetaan tekstinä.

Tärkeä

Parametriosiossa määritetyt parametrit, joita ei käytetä <STATEMENT>-elementissä, synnyttävät XMLA:ssa virhevastauksen. Parametrit, joita käytetään mutta joita ei ole määritetty <Parameters>-elementissä, synnyttävät XMLA:ssa virhevastauksen.

DAX lausekkeidenSUMMARIZECOLUMNS