İngilizce dilinde oku

Aracılığıyla paylaş


DAX sorguları

Power BI and Excel gibi raporlama istemcileri, raporda görseller her görüntülendiğinde DAX sorgular yürütür or tabloya eklenen bir alanı andfilter uygulandığında bu DAX sorguları ayarlanır. Power BI Desktop'taki performans çözümleyicisi size bu DAX sorgularını gösterebilir andeven bunları DAX sorgu görünümünde çalıştırabilir.

Power BI Desktop'ta DAX sorgu görünümü kullanarak orPower BI hizmetinde DAX yazma sorguları oluşturabilir and kendi DAX sorgularınızı çalıştırabilirsiniz. Microsoft Fabricile Desktop web'in sorgu görünümünde sorgular yazmak için Copilot ile üretkenliğinizi daha da artırabilirsiniz. Power BI araçlarına ek olarak, DAX sorgular Fabric not defterlerinde çalıştırılabilir python ile anlamsal modellerden veri okumak için semantik bağlantı kullanılarak andSorguları Yürüt REST APIile Power Automatede kullanılabilir. SQL Server Management Studio (SSMS), Power BI Rapor Oluşturucusugibi diğer araçlar andDAX Studiogibi açık kaynak araçlar da DAX sorguları çalıştırmak and oluşturmanıza olanak sağlar.

DAX sorgular, sonuçları araç içinde bir tablo right olarak döndürerek, ölçütlerde DAX formüllerinizin performansını hızla oluşturmanıza, test etmenize and ve yalnızca anlamsal modelinizdeki verileri görüntülemenize or olanak sağlar. BİlGİ and BİlGİ. VIEW DAX işlevleri, tablo, sütun, ölçü and çok daha fazlasını içeren bir liste gibi anlamsal modeliniz hakkında da bilgi alabilir.

Sorgular hakkında bilgi edinmeden önce DAX temel bilgileri iyi anlamanız önemlidir. Henüz yapmadıysanız, DAXgenel bakışına If göz attığınızdan emin olun.

Anahtar kelime -ler

DAX sorgularının, tek bir gerekli anahtar sözcük olan EVALUATEile oluşan basit bir söz dizimi vardır. EVALUATE, çalıştırıldığında bir sonuç tablosunun çıkışını veren DAX işlevi or tablo adı gibi bir tablo ifadesi izler. Sonuç tablosunun çıkışını veren tablo ifadeleri şunlardır:

  1. Yaygın DAX işlevleri, SUMMARIZE, SUMMARIZECOLUMNS, SELECTCOLUMNS, FILTER, UNION, TOPN, ADDCOLUMNS, DATATABLE, and ve diğer birçok işlev, sonuç tablosunun çıktısını almak için EVALUATE ile birlikte çalışır.
  2. Modeldeki tablolar, isimle referans verildiğinde, tablodaki verileri gösteren bir sonuç tablosu çıkarmak için EVALUATE ile çalışır. Örneğin, EVALUATE 'Tablo adı' bir DAX sorgusu olarak çalıştırılabilir.
  3. Modeldeki ölçüler, bir skaler valuedöndüren herhangi bir DAX formülü or, küme ayraçları içine alındığında value sonuç tablosu olarak göstermek için EVALUATE ile birlikte çalışır. Örneğin, EVALUATE {[Total Sales]}orEVALUATE {COUNTROWS('Sales')} bir DAX sorgusu olarak çalıştırılabilir. Bunlar,tablo oluşturucuları olarak adlandırılır.

DAX sorgularına özgü birkaç isteğe bağlı anahtar sözcük vardır: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN.

EVALUATE (Gerekli)

En temel düzeyde DAX sorgu, tablo ifadesi içeren bir EVALUATE deyimidir. En az bir EVALUATE deyimi gereklidir, ancak sorgu herhangi bir sayıda EVALUATEstatementsiçerebilir.

EVALUATE Söz Dizimi

EVALUATE <table>

EVALUATE Parametreleri

Terim Tanım
table Bir tablo ifadesi.

EVALUATE Örneği

EVALUATE
	'Sales Order'

all satır, and sütun ile Sales Order tablosundan sonuç tablosu döndürür. Bu, ORDER BYile sıralanmış andTOPNorFILTERkullanımıyla sınırlandırılabilir.

Power BI Desktop'ın DAX sorgu görünümünde DAX sorgu için EVALUATE nasıl kullanılacağını gösteren ekran görüntüsü.

ORDER BY (İsteğe bağlı)

İsteğe bağlı ORDER BY anahtar sözcüğü, sorgu sonuçlarını sıralamak için kullanılan sorgu or ifadelerinde bir or daha fazla sütun tanımlar. Sonucun her satırı için değerlendirilebilecek tüm ifadeler geçerlidir. Sorgudaki herhangi bir sütun da geçerlidir.

Anlam modellerindeki sütun özelliğine göre sıralama, DAX sorgu sonuçlarına not uygulanır. If bir sütun modelde farklı bir sütuna göre sıralanmalıdır; örneğin, Month Adı söz konusu olduğunda, sütuna göre sıralama, ORDER BYkullanılacak DAX sorgusuna da eklenmelidir.

ORDER BY Söz Dizimi

EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]

ORDER BY Parametreleri

Terim Tanım
expression Herhangi bir DAX ifadesi, DAX sorgusuna dahil edilen or sütununu içeren tek bir skaler valuedöndürüyor.
ASC (varsayılan) Artan sıralama düzeni.
DESC Azalan sıralama düzeni.

ORDER BY Örneği

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

Sonuç tablosu olarak, giyim siparişlerini sipariş başına andaverage karla, monthartan düzende ve montholarak döndürür.

Power BI Desktop'ın DAX sorgu görünümünde DAX sorgu için ORDER BY nasıl kullanılacağını gösteren ekran görüntüsü.

TOPN, ORDER BYiçinde belirtilen sıralama düzenine göre döndürülecek satır sayısını not seçer. Bunun yerine, TOPN kendi söz dizimiyle, isteğe bağlı olarak, ilk 100 satır döndürülmeden önce bir sıralama belirtir. ORDER BY yalnızca TOPNtarafından döndürülen sonuç tablosunu sıralar.

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

SalesOrderLienKey'e göre artan düzende sıralanmış ilk 100 satış siparişini döndürür, ardından sonuçları satış siparişine göre first ve ardından satış siparişi satırına göre sıralar.

Power BI Desktop'ın DAX sorgu görünümünde DAX sorgu için TOPNandORDER BY nasıl kullanılacağını gösteren ekran görüntüsü.

START AT (İsteğe bağlı)

İsteğe bağlı START AT anahtar sözcüğü bir ORDER BY yan tümcesi içinde kullanılır. Sorgu sonuçlarının başladığı yeri value olarak tanımlar.

START AT Söz Dizimi

EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]

START AT Parametreleri

Terim Tanım
value Sabit bir value. İfade olarak kullanılamaz.
parameter @ karakteri ön ekli XMLA ifadesindeki parametrenin adı.

START AT Açıklamalar

START AT bağımsız değişkenlerin ORDER BY yan tümcesindeki sütunlarla birebir karşılığı vardır. START AT yan tümcesinde ORDER BY yan tümcesinde olduğu kadar çok bağımsız değişken olabilir, ancak daha fazla not. first argümanı, START AT'de ORDER BY sütunlarının 1. sütunundaki başlangıç value'yi tanımlar. START AT'deki second bağımsız değişkeni, 1. sütun için firstvalue karşılayan satırlardaki ORDER BY sütunlarının 2. sütunundaki başlangıç value'yi tanımlar.

START AT Örneği

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"

Satış Siparişleri tablosundaki all sütunları, SO43661 numaralı siparişten başlayarak Satış Siparişine göre artan düzende döndürülür. Bu satış siparişinden önceki satırlar, sonuç tablosuna not dâhil edilir.

Power BI Desktop'ın DAX sorgu görünümünde DAX sorgu için ORDER BYandSTART AT nasıl kullanılacağını gösteren ekran görüntüsü.

DEFINE (İsteğe bağlı)

İsteğe bağlı DEFINE anahtar sözcüğü, yalnızca sorgunun duration için var olan bir or daha fazla hesaplanmış varlık tanımı sağlar. EVALUATEaksine, bir DAX sorgusunda birden fazla or tanım içeren yalnızca bir DEFINE blok olabilir. DEFINE, sorgudaki allEVALUATEstatements için geçerli andfirstEVALUATE deyiminden önce olmalıdır. Tanımlar değişkenler, ölçüler, tablolar1, and sütunlar1olabilir. Tanımlar, mevcut tanımdan sonra ve or'dan önce görünen diğer tanımlara başvurabilir. DEFINE anahtar sözcüğü bir sorguya dahil if en az bir tanım gereklidir.

DEFINE MEASURE, yeni ölçüler oluşturmak or mevcut ölçüleri anlamsal bir modelde düzenlemek için yaygın bir senaryodur. measure modelde zaten mevcut olduğunda, DAX sorgusu sorguda tanımlanan measureDAX formülünü kullanır. Bu, modeli güncelleştirmeden önce ölçüleri DAX sorguyla test etme konusunda yararlıdır.

DEFINE MEASURE, özel bir DAX sorgusu için DAX formüllerle ek analiz oluşturmanıza, model ekleme izninizin not olduğu durumlarda, measureor modelde olması not gerektiğinde de yardımcı olur.

DEFINE Söz Dizimi

[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 Parametreleri

Terim Tanım
Entity MEASURE, VAR, TABLE1, or COLUMN1.
name measure, var, tablo or sütun tanımının adı. Bu bir ifade olamaz. Adın benzersiz olması not. Ad yalnızca sorgunun duration için var.
expression skaler valueor tablo döndüren herhangi bir DAX ifadesi. İfade tanımlı varlıklardan herhangi birini kullanabilir. If bir skaler ifadeyi tablo ifadesine convert, ifadeyi {}küme ayraçlarıyla bir tablo oluşturucusunun içine sarmalamanız or tek satırlı bir tablo döndürmek için ROW() işlevini kullanın.

[1]Dikkat: Sorgu kapsamlı TABLE and COLUMN tanımları yalnızca iç kullanım içindir. Söz dizimi errorolmayan bir sorgu için TABLE and COLUMN ifadelerini define kullanabilirsiniz, ancak bunlar çalışma zamanı hataları oluşturabileceğinden and önerilmez not.

DEFINE Açıklama

  • DAX sorguda birden çok EVALUATEstatementsolabilir, ancak yalnızca bir DEFINE deyimi bulunabilir. DEFINE deyimindeki tanımlar sorgudaki herhangi bir EVALUATEstatements'ye uygulanabilir.

  • DEFINE deyiminde en az bir tanım gereklidir.

  • Bir sorgu için Measure tanımları aynı ada sahip model ölçülerini geçersiz kılar, ancak yalnızca sorgu içinde kullanılır. not modeli measureetkileyecek.

  • VAR adların özgün kısıtlamaları vardır. Daha fazla bilgi için bkz. VAR - Parametreler.

DEFINE Örneği

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]}

DAX sorgusunda tanımlanan tabloyu döndürerek, satın alınmamış ürünleri tanımlı değişkenlere göndermede bulunan ek bir sütunla gösterir. Bir measure ayrıca tanımlanır ve count satın alınmamış ürünlerin satırları and değerlendirilir.

Power BI Desktop'ın DAX sorgu görünümünde DAX sorgu için DEFINE nasıl kullanılacağını gösteren ekran görüntüsü.

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]
	)

Mali yeargöre sonuçları göstermek için üç tanımlı ölçüleri değerlendiren bir tablo döndürür. All ölçüleri modelde de bulunur, and Müşteri Başına Siparişler DAX sorgusunda değiştirilmiştir.

Power BI Desktop'ın DAX sorgu görünümünde DAX sorgu için DEFINEMEASURE nasıl kullanılacağını gösteren ekran görüntüsü.

DAX sorgulardaki parametreler

İyi tanımlanmış bir DAX sorgu deyimi parametreleştirilebilir and ardından and üzerinden parametresindeki değişikliklerle values.

Yürütme Yöntemi (XMLA) yönteminde, parametrelerin valueatanmasına and tanımlanmasına izin veren bir Parameters Öğesi (XMLA) koleksiyon öğesi vardır. Koleksiyonda, her Parametre Öğesi (XMLA) öğesi, parametrenin adını and bir value tanımlar.

Parametrenin adını bir @ karakteriyle ön ekleyerek XMLA parametrelerine başvurun. Söz diziminde bir value'ın izin verildiği herhangi bir yerde, value bir parametre çağrısıyla değiştirilebilir. All XMLA parametreleri metin olarak yazılır.

Önemli

XMLA'da error yanıtında, generate<STATEMENT> öğesinde kullanılan andnot parametreler, parametreler bölümünde tanımlanmıştır. XMLA'da <Parameters> öğesi generate içinde error yanıtında tanımlanan andvenot parametreleri kullanılır.

DAX statements SUMMARIZECOLUMNS