Κοινή χρήση μέσω


DAX ερωτημάτων

Προγράμματα-πελάτες αναφοράς όπως το Power BI και το Excel εκτελούν DAX ερωτήματα κάθε φορά που εμφανίζονται απεικονίσεις σε μια αναφορά ή ένα πεδίο προστίθεται σε έναν πίνακα και αυτά τα DAX ερωτήματα προσαρμόζονται όταν εφαρμόζεται ένα φίλτρο. Η ανάλυσης απόδοσης στο Power BI Desktop μπορεί να σας εμφανίσει αυτά DAX ερωτήματα, ακόμη και να τα εκτελέσει στην προβολή ερωτήματος DAX.

Χρησιμοποιώντας DAX προβολής ερωτημάτων στο Power BI Desktop ή Εγγραφή DAX ερωτημάτων στην υπηρεσία Power BI, μπορείτε να δημιουργήσετε και να εκτελέσετε τα δικά σας ερωτήματα DAX. Με Microsoft Fabric, μπορείτε να αυξήσετε περαιτέρω την παραγωγικότητά σας με Copilot για τη σύνταξη ερωτημάτων DAX σε DAX προβολή ερωτημάτων του Desktop ή του Web. Εκτός από τα εργαλεία Power BI, μπορούν να εκτελεστούν ερωτήματα σε σημειωματάρια Fabric που χρησιμοποιούν σημασιολογική σύνδεση για την ανάγνωση δεδομένων από σημασιολογικά μοντέλα με python και με τοAPI REST Εκτέλεση ερωτημάτων , επίσης διαθέσιμο στο Power Automate. Άλλα εργαλεία, όπως το SQL Server Management Studio (SSMS), το το Power BI Report Builderκαι εργαλεία ανοιχτού κώδικα, όπως το DAX Studio, σάς επιτρέπουν επίσης να δημιουργείτε και να εκτελείτε ερωτήματα DAX.

DAX ερωτήματα επιστρέφουν αποτελέσματα ως πίνακα ακριβώς μέσα στο εργαλείο, επιτρέποντάς σας να δημιουργήσετε και να ελέγξετε γρήγορα τις επιδόσεις των DAX τύπων σας σε μετρήσεις ή απλώς να προβάλετε τα δεδομένα στο μοντέλο σημασιολογίας σας. ΠΛΗΡΟΦΟΡΙΕΣ και ΠΛΗΡΟΦΟΡΙΕΣ. Η VIEW DAX συναρτήσεις μπορούν επίσης να λάβουν πληροφορίες σχετικά με το σημασιολογικό μοντέλο σας, όπως μια λίστα πινάκων, στηλών, μετρήσεων και πολλά άλλα.

Πριν μάθετε σχετικά με τα ερωτήματα, είναι σημαντικό να κατανοήσετε καλά τα βασικά στοιχεία DAX. Εάν δεν το έχετε κάνει ήδη, ρίξτε μια ματιά DAX επισκόπηση.

Λέξεις κλειδιά

DAX ερωτήματα έχουν μια απλή σύνταξη που αποτελείται από μία μόνο απαιτούμενη λέξη-κλειδί, EVALUATE. EVALUATE ακολουθείται από μια παράσταση πίνακα, όπως μια συνάρτηση DAX ή όνομα πίνακα, η οποία όταν η εκτέλεση εξάγει έναν πίνακα αποτελέσματος. Οι παραστάσεις πίνακα που εξάγουν έναν πίνακα αποτελεσμάτων περιλαμβάνουν:

  1. Οι συνήθεις συναρτήσεις DAX που εξάγουν έναν πίνακα, όπως SUMMARIZE, SUMMARIZECOLUMNS, SELECTCOLUMNS, FILTER, UNION, TOPN, ADDCOLUMNS, DATATABLEκαι πολλές άλλες, συνεργάζονται με EVALUATE για την έξοδο ενός πίνακα αποτελεσμάτων.
  2. Οι πίνακες στο μοντέλο, όταν αναφέρονται με βάση το όνομα, λειτουργούν με EVALUATE για την έξοδο ενός πίνακα αποτελεσμάτων που εμφανίζει τα δεδομένα στον πίνακα. Για παράδειγμα, EVALUATE "Όνομα πίνακα" μπορεί να εκτελεστεί ως DAX ερώτημα.
  3. Οι μετρήσεις στο μοντέλο ή σε οποιονδήποτε τύπο DAX, ο οποίος επιστρέφει μια ανυσματική τιμή, συνεργάζονται με EVALUATE για να εμφανίσουν την τιμή ως πίνακα που προκύπτει όταν περικλείονται σε άγκιστρα. Για παράδειγμα, EVALUATE {[Total Sales]} ή EVALUATE {COUNTROWS('Πωλήσεις')} μπορούν να εκτελεστεί ως DAX ερώτημα. Αυτές ονομάζονται κατασκευές πίνακα.

Υπάρχουν πολλές προαιρετικές λέξεις-κλειδιά ειδικά για DAX ερωτήματα: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE και COLUMN.

EVALUATE (Απαιτείται)

Στο πιο βασικό επίπεδο, ένα ερώτημα DAX είναι μια EVALUATE πρόταση που περιέχει μια παράσταση πίνακα. Ωστόσο, απαιτείται τουλάχιστον μία EVALUATE πρόταση, ωστόσο, ένα ερώτημα μπορεί να περιέχει οποιονδήποτε αριθμό EVALUATE πρότασης.

σύνταξη EVALUATE

EVALUATE <table>

παράμετροι EVALUATE

Όρος Ορισμός
table Μια παράσταση πίνακα.

παράδειγμα EVALUATE

EVALUATE
	'Sales Order'

Επιστρέφει όλες τις γραμμές και τις στήλες από τον πίνακα Sales Order, ως αποτέλεσμα. Αυτό μπορεί να περιοριστεί με τη χρήση του TOPN ή του FILTERκαι να ταξινομηθεί με ORDER BY.

Στιγμιότυπο οθόνης που δείχνει πώς μπορείτε να χρησιμοποιήσετε EVALUATE για ένα ερώτημα DAX σε DAX προβολή ερωτήματος του Power BI Desktop.

ORDER BY (Προαιρετικό)

Η προαιρετική ORDER BY λέξη-κλειδί ορίζει μία ή περισσότερες στήλες στο ερώτημα ή παραστάσεις που χρησιμοποιούνται για την ταξινόμηση των αποτελεσμάτων του ερωτήματος. Οποιαδήποτε παράσταση που μπορεί να αξιολογηθεί για κάθε γραμμή του αποτελέσματος είναι έγκυρη. Οποιαδήποτε στήλη στο ίδιο το ερώτημα είναι επίσης έγκυρη.

Η ιδιότητα ταξινόμησης κατά στήλη σε σημασιολογικά μοντέλα δεν ισχύει για DAX αποτελεσμάτων ερωτήματος. Εάν μια στήλη πρέπει να ταξινομηθεί με βάση μια διαφορετική στήλη στο μοντέλο, όπως στην περίπτωση του Month Name, η στήλη ταξινόμησης κατά θα πρέπει επίσης να συμπεριληφθεί στο ερώτημα DAX που θα χρησιμοποιηθεί στο ORDER BY.

σύνταξη ORDER BY

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

παράμετροι ORDER BY

Όρος Ορισμός
expression Οποιαδήποτε παράσταση DAX που επιστρέφει μια μοναδική ανυσματική τιμή ή στήλη που περιλαμβάνεται στο ερώτημα DAX.
ASC (προεπιλογή) Αύξουσα σειρά ταξινόμησης.
DESC Φθίνουσα σειρά ταξινόμησης.

παράδειγμα ORDER BY

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

Επιστρέφει τις παραγγελίες ρούχων και το μέσο κέρδος ανά παραγγελία ανά μήνα, σε αύξουσα σειρά κατά μήνα, ως πίνακα αποτελεσμάτων.

Στιγμιότυπο οθόνης που δείχνει πώς μπορείτε να χρησιμοποιήσετε ORDER BY για ένα ερώτημα DAX σε DAX προβολή ερωτήματος του Power BI Desktop.

TOPN δεν επιλέγει τον καθορισμένο αριθμό γραμμών που θα επιστραφούν με βάση τη σειρά ταξινόμησης που καθορίζεται στο ORDER BY. Αντί για αυτό, TOPN έχει τη δική της σύνταξη για να καθορίσετε προαιρετικά μια ταξινόμηση προτού επιστραφούν οι πρώτες 100 γραμμές. ORDER BY ταξινομεί μόνο τον πίνακα αποτελεσμάτων που επιστρέφεται από TOPN.

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

Επιστρέφει τις 100 κορυφαίες παραγγελίες πωλήσεων ταξινομημένες κατά αύξουσα σειρά SalesOrderLienKey και, στη συνέχεια, ταξινομεί τα αποτελέσματα πρώτα κατά παραγγελία πώλησης και, στη συνέχεια, κατά γραμμή παραγγελίας πώλησης.

Στιγμιότυπο οθόνης που εμφανίζει πώς μπορείτε να χρησιμοποιήσετε TOPN και ORDER BY για ένα ερώτημα DAX στην προβολή ερωτήματος DAX του Power BI Desktop.

START AT (Προαιρετικό)

Η προαιρετική λέξη-κλειδί START AT χρησιμοποιείται μέσα σε έναν όρο ORDER BY. Καθορίζει την τιμή με την οποία ξεκινούν τα αποτελέσματα του ερωτήματος.

σύνταξη START AT

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

παράμετροι START AT

Όρος Ορισμός
value Μια τιμή σταθεράς. Δεν μπορεί να είναι παράσταση.
parameter Το όνομα μιας παραμέτρου σε μια πρόταση XMLA με πρόθεμα έναν χαρακτήρα @.

START AT παρατηρήσεις

START AT ορίσματα έχουν μια αντιστοιχία ένα προς ένα με τις στήλες στον όρο ORDER BY. Μπορεί να υπάρχουν τόσα ορίσματα στον όρο START AT όπως υπάρχουν στον ORDER BY όρο, αλλά όχι περισσότερα. Το πρώτο όρισμα στην START AT ορίζει την τιμή έναρξης στη στήλη 1 των ORDER BY στηλών. Το δεύτερο όρισμα στην START AT ορίζει την τιμή έναρξης στη στήλη 2 των ORDER BY στηλών εντός των γραμμών που ικανοποιούν την πρώτη τιμή για τη στήλη 1.

παράδειγμα START AT

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"

Επιστρέφει όλες τις στήλες από τον πίνακα Sales Order, σε αύξουσα σειρά κατά Sales Order, ξεκινώντας από SO43661. Οι γραμμές πριν από αυτήν την παραγγελία πωλήσεων δεν περιλαμβάνονται στον πίνακα που προκύπτει.

Στιγμιότυπο οθόνης που εμφανίζει πώς μπορείτε να χρησιμοποιήσετε ORDER BY και START AT για ένα ερώτημα DAX στην προβολή ερωτήματος DAX του Power BI Desktop.

DEFINE (Προαιρετικό)

Η προαιρετική DEFINE λέξη-κλειδί παρουσιάζει έναν ή περισσότερους ορισμούς υπολογιζόμενης οντότητας που υπάρχουν μόνο κατά τη διάρκεια του ερωτήματος. Σε αντίθεση με EVALUATE, μπορεί να υπάρχει μόνο ένα μπλοκ DEFINE με έναν ή περισσότερους ορισμούς σε ένα ερώτημα DAX. DEFINE πρέπει να προηγείται της πρώτης πρότασης EVALUATE και να είναι έγκυρες για όλες EVALUATE προτάσεις στο ερώτημα. Οι ορισμοί μπορεί να είναι μεταβλητές, μετρήσεις, πίνακες1και στήλες1. Οι ορισμοί μπορούν να αναφέρουν άλλους ορισμούς που εμφανίζονται πριν ή μετά τον τρέχοντα ορισμό. Απαιτείται τουλάχιστον ένας ορισμός εάν η λέξη-κλειδί DEFINE περιλαμβάνεται σε ένα ερώτημα.

DEFINE MEASURE είναι ένα συνηθισμένο σενάριο για τη δημιουργία νέων μετρήσεων ή την επεξεργασία υπαρχουσών μετρήσεων σε ένα μοντέλο σημασιολογίας. Όταν η μέτρηση υπάρχει ήδη στο μοντέλο, το ερώτημα DAX θα χρησιμοποιήσει τη μέτρηση DAX τύπο που έχει οριστεί στο ερώτημα. Αυτό είναι χρήσιμο για τη δοκιμή μετρήσεων με ένα DAX ερώτημα πριν από την ενημέρωση του μοντέλου.

DEFINE MEASURE είναι επίσης χρήσιμο για τη δημιουργία πρόσθετης ανάλυσης με τύπους DAX για ένα συγκεκριμένο DAX ερώτημα όπου ενδέχεται να μην έχετε δικαίωμα προσθήκης μιας μέτρησης μοντέλου ή δεν είναι απαραίτητο να την έχετε στο μοντέλο.

σύνταξη DEFINE

[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

Όρος Ορισμός
Entity MEASURE, VAR, TABLE1ή COLUMN1.
name Το όνομα μιας μέτρησης, διακύησης, πίνακα ή ορισμού στήλης. Δεν μπορεί να είναι παράσταση. Το όνομα δεν χρειάζεται να είναι μοναδικό. Το όνομα υπάρχει μόνο κατά τη διάρκεια του ερωτήματος.
expression Οποιαδήποτε DAX παράσταση που επιστρέφει έναν πίνακα ή μια ανυσματική τιμή. Η παράσταση μπορεί να χρησιμοποιήσει οποιαδήποτε από τις καθορισμένες οντότητες. Εάν υπάρχει ανάγκη μετατροπής μιας ανυσματικής παράστασης σε μια παράσταση πίνακα, αναδιπλώστε την παράσταση μέσα σε μια κατασκευή πίνακα με άγκιστρα {}ή χρησιμοποιήστε τη συνάρτηση ROW() για να επιστρέψετε έναν πίνακα μοναδικής γραμμής.

[1]Προσοχή: ορισμοί ΠΙΝΆΚΩΝ και ΣΤΗΛΏΝ με εμβέλεια ερωτήματος προορίζονται μόνο για εσωτερική χρήση. Παρόλο που μπορείτε να ορίσετε παραστάσεις TABLE και COLUMN για ένα ερώτημα χωρίς σφάλμα σύνταξης, μπορεί να παράγουν σφάλματα χρόνου εκτέλεσης και δεν συνιστώνται.

DEFINE παρατηρήσεις

  • Ένα DAX ερώτημα μπορεί να έχει πολλές προτάσεις EVALUATE, αλλά μπορεί να έχει μόνο μία πρόταση DEFINE. Οι ορισμοί στην πρόταση DEFINE μπορούν να εφαρμοστούν σε οποιεσδήποτε προτάσεις EVALUATE στο ερώτημα.

  • Απαιτείται τουλάχιστον ένας ορισμός σε μια πρόταση DEFINE.

  • Οι ορισμοί μετρήσεων για ένα μοντέλο παράκαμψης ερωτήματος με το ίδιο όνομα, αλλά χρησιμοποιούνται μόνο μέσα στο ερώτημα. Δεν θα επηρεάσουν τη μέτρηση μοντέλου.

  • VAR ονόματα έχουν μοναδικούς περιορισμούς. Για να μάθετε περισσότερα, ανατρέξτε στο θέμα VAR - Παράμετροι.

παράδειγμα DEFINE

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 για να εμφανίσει μη αναζήτητα προϊόντα με μια πρόσθετη αναφορά στήλης σε καθορισμένες μεταβλητές. Μια μέτρηση ορίζεται επίσης και αξιολογείται για να μετρήσει τις γραμμές μη ζητημένων προϊόντων.

Στιγμιότυπο οθόνης που δείχνει πώς μπορείτε να χρησιμοποιήσετε DEFINE για ένα ερώτημα DAX σε DAX προβολή ερωτήματος του Power BI Desktop.

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

Επιστρέφει έναν πίνακα που αξιολογεί τρεις καθορισμένες μετρήσεις για να εμφανίσει τα αποτελέσματα κατά οικονομικό έτος. Όλες οι μετρήσεις υπάρχουν επίσης στο μοντέλο και οι παραγγελίες ανά πελάτη τροποποιούνται στο DAX ερώτημα.

Στιγμιότυπο οθόνης που δείχνει πώς μπορείτε να χρησιμοποιήσετε DEFINEMEASURE για ένα ερώτημα DAX στην προβολή DAX ερωτήματος του Power BI Desktop.

Παράμετροι σε DAX ερωτήματα

Μια σαφώς καθορισμένη πρόταση DAX ερωτήματος μπορεί να παραμετροποιηθεί και, στη συνέχεια, να χρησιμοποιηθεί ξανά και ξανά μόνο με αλλαγές στις τιμές παραμέτρων.

Η μέθοδος Execute Method (XMLA) έχει ένα parameters Element (XMLA) στοιχείο συλλογής που επιτρέπει τον ορισμό παραμέτρων και την εκχώρηση μιας τιμής. Εντός της συλλογής, κάθε Parameter Element (XMLA) στοιχείο ορίζει το όνομα της παραμέτρου και μια τιμή σε αυτή.

Αναφέρετε παραμέτρους XMLA, τοποθετώντας στο πρόθεμα το όνομα της παραμέτρου έναν @ χαρακτήρα. Σε κάθε θέση στη σύνταξη όπου επιτρέπεται μια τιμή, η τιμή μπορεί να αντικατασταθεί με μια κλήση παραμέτρου. Όλες οι παράμετροι XMLA πληκτρολογούνται ως κείμενο.

Σημαντικός

Οι παράμετροι που ορίστηκαν στην ενότητα παραμέτρων και δεν χρησιμοποιήθηκαν στο <STATEMENT> στοιχείο δημιουργούν μια απόκριση σφάλματος στο XMLA. Οι παράμετροι που χρησιμοποιήθηκαν και δεν ορίστηκαν στο <Parameters> στοιχείο δημιουργούν μια απόκριση σφάλματος στο XMLA.

δηλώσεων