Ανάγνωση στα Αγγλικά

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


DAX ερωτημάτων

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

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

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

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

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

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

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

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

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

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

σύνταξη EVALUATE

EVALUATE <table>  

παράμετροι EVALUATE

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

παράδειγμα EVALUATE

EVALUATE
	'Sales Order'

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

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

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

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

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

σύνταξη ORDER BY

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

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

Όρος Ορισμός
expression Οποιαδήποτε παράσταση DAX που επιστρέφει μια μοναδική ανυσματική value, or στήλη που περιλαμβάνεται στο ερώτημα 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

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

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

TOPN not επιλέγει τον καθορισμένο αριθμό γραμμών που θα επιστραφούν με βάση τη σειρά ταξινόμησης που καθορίζεται στο 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 και, στη συνέχεια, ταξινομεί τα αποτελέσματα first κατά παραγγελία πώλησης και, στη συνέχεια, κατά γραμμή παραγγελίας πώλησης.

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

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

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

σύνταξη START AT

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

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

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

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

START AT ορίσματα έχουν μια αντιστοιχία ένα προς ένα με τις στήλες στον όρο ORDER BY. Μπορεί να υπάρχουν τόσα ορίσματα στον όρο START AT όσα υπάρχουν στον όρο ORDER BY, αλλά not περισσότερα. Το όρισμα first στη START AT ορίζει την αρχική value στη στήλη 1 των ORDER BY στηλών. Το όρισμα second στη START AT ορίζει την αρχική value στη στήλη 2 των ORDER BY στηλών εντός των γραμμών που ικανοποιούν τη firstvalue για τη στήλη 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"

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

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

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

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

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

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

σύνταξη DEFINE

[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

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

[1]Προσοχή: ορισμοί ΠΊΝΑΚΑ με εμβέλεια ερωτήματος and COLUMN προορίζονται μόνο για εσωτερική χρήση. Παρόλο που μπορείτε να define TABLE and παραστάσεις COLUMN για ένα ερώτημα χωρίς σύνταξη error, μπορεί να παράγουν σφάλματα χρόνου εκτέλεσης andnot συνιστώνται.

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

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

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

  • Measure ορισμοί για ένα ερώτημα παρακάμπτουν μετρήσεις μοντέλου με το ίδιο όνομα, αλλά χρησιμοποιούνται μόνο μέσα στο ερώτημα. Θα επηρεάσουν not τις measureμοντέλου .

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

Στιγμιότυπο οθόνης που δείχνει πώς μπορείτε να χρησιμοποιήσετε 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]
	)

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

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

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

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

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

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

Σημαντικό

Οι παράμετροι που ορίζονται στην ενότητα παραμέτρων andnot που χρησιμοποιούνται στο στοιχείο <STATEMENT>generate μια απόκριση error στο XMLA. Οι παράμετροι που χρησιμοποιούνται andnot ορίζονται στο <Parameters> στοιχείο generate μια error απόκριση στο XMLA.

DAX statements
SUMMARIZECOLUMNS