Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Ισχύει για:
Υπολογιζόμενη στήλη
Υπολογιζόμενος πίνακας
Μετρώ
Υπολογισμός απεικόνισης
Επιστρέφει πολλές γραμμές που τοποθετούνται εντός του δεδομένου διαστήματος.
Σύνταξη
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Παράμετροι
| Όρος | Ορισμός |
|---|---|
from |
Υποδεικνύει από πού ξεκινά το παράθυρο. Μπορεί να είναι οποιαδήποτε παράσταση DAX που επιστρέφει μια ανυσματική τιμή.
Η συμπεριφορά εξαρτάται από την παράμετρο from_type: - Εάν from_type είναι REL, ο αριθμός των γραμμών προς επιστροφή (αρνητική τιμή) ή προς τα εμπρός (θετική τιμή) από την τρέχουσα γραμμή για λήψη της πρώτης γραμμής στο παράθυρο.
- Εάν from_type το είναι ABSκαι from είναι θετικό, είναι η θέση της αρχής του παραθύρου από την αρχή του διαμερίσματος. Η δημιουργία ευρετηρίου βασίζεται σε 1 και το 0 ερμηνεύεται ως 1. Για παράδειγμα, 0 και 1 σημαίνει ότι το παράθυρο ξεκινά από την αρχή του διαμερίσματος. Εάν from το είναι αρνητικό, είναι η θέση της αρχής του παραθύρου από το τέλος του διαμερίσματος. -1 σημαίνει την τελευταία γραμμή στο διαμέρισμα. |
from_type |
Συμπεριφορά τροποποίησης της παραμέτρου from. Οι πιθανές τιμές είναι ABS (απόλυτες) και REL (σχετικές). Η προεπιλογή είναι REL. |
to |
Όπως και from, αλλά υποδεικνύει το τέλος του παραθύρου. Η τελευταία γραμμή περιλαμβάνεται στο παράθυρο. |
to_type |
Όμοια με from_type, αλλά τροποποιεί τη συμπεριφορά του to. |
relation |
(Προαιρετικό) Μια παράσταση πίνακα από την οποία επιστρέφονται οι γραμμές εξόδου. Εάν χρησιμοποιείται σε υπολογισμούς απεικονίσεων, αυτή η παράμετρος αποδέχεται έναν άξονα στο σχήμα απεικόνισης.
Εάν καθοριστεί, όλες οι στήλες στο partitionBy πρέπει να προέρχονται από αυτή ή από έναν σχετικό πίνακα.
Εάν παραλειφθεί: - Πρέπει να καθορίσετε orderBy ρητά.- Όλες οι orderBy παραστάσεις και partitionBy πρέπει να είναι πλήρως προσδιορισμένα ονόματα στηλών και να προέρχονται από έναν μοναδικό πίνακα.
- Η προεπιλεγμένη τιμή ALLSELECTED() όλων των στηλών στα orderBy και partitionBy. |
orderBy |
(Προαιρετικό) Ένας όρος ORDERBY() που περιέχει τις παραστάσεις που ορίζουν τον τρόπο ταξινόμησης κάθε διαμερίσματος.
Εάν παραλειφθεί: - Πρέπει να καθορίσετε relation ρητά.
- Η προεπιλογή είναι η ταξινόμηση βάσει κάθε στήλης που relation δεν έχει ήδη καθοριστεί στο partitionBy. |
blanks |
(Προαιρετικό) Μια απαρίθμηση που ορίζει τον τρόπο χειρισμού κενών τιμών κατά την ταξινόμηση του relation ή του axis.
Οι υποστηριζόμενες τιμές είναι:
Όταν καθορίζετε την blanks παράμετρο και τα κενά στη ORDERBYσυνάρτηση () σε μεμονωμένες παραστάσεις, blanks στη μεμονωμένη παράσταση orderBy έχει προτεραιότητα για τη σχετική παράσταση orderBy. Οι παραστάσεις OrderBy χωρίς blanks να καθορίζονται τιμούν την blanks παράμετρο στη γονική συνάρτηση. |
partitionBy |
(Προαιρετικό) Ένας όρος relation αντιμετωπίζεται ως ένα ενιαίο διαμέρισμα. |
matchBy |
(Προαιρετικό) Ένας MATCHBYόρος () που περιέχει τις στήλες που ορίζουν τον τρόπο αντιστοίχισης δεδομένων και αναγνώρισης της τρέχουσας γραμμής. |
reset |
(Προαιρετικό) Διατίθεται μόνο σε υπολογισμούς απεικονίσεων. Υποδεικνύει εάν γίνεται επαναφορά του υπολογισμού και σε ποιο επίπεδο της ιεραρχίας στηλών του σχήματος απεικόνισης. Οι αποδεκτές τιμές είναι: μια αναφορά πεδίου σε μια στήλη στο τρέχον σχήμα απεικόνισης, NONE (προεπιλογή), LOWESTPARENT, HIGHESTPARENTή ακέραιος. Η συμπεριφορά εξαρτάται από το πρόσημο ακέραιου: - Εάν δεν έχει παραλειφθεί ή παραλειφθεί, ο υπολογισμός δεν επαναφέρεται. Ισοδύναμο με NONE.
- Εάν είναι θετικό, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από την υψηλότερη, ανεξάρτητα από το επίπεδο λεπτομέρειας. HIGHESTPARENT ισοδυναμεί με 1.
- Εάν είναι αρνητικό, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από τη χαμηλότερη, σε σχέση με το τρέχον επίπεδο. LOWESTPARENT ισοδυναμεί με -1. |
Τιμή επιστροφής
Όλες οι γραμμές από το παράθυρο.
Παρατηρήσεις
Εκτός από τις στήλες που προστίθενται από DAX συναρτήσεις πίνακα, κάθε στήλη στο relation (όταν matchBy δεν είναι παρούσα) ή κάθε στήλη στο matchBy και partitionBy (όταν matchBy υπάρχει), πρέπει να έχει μια αντίστοιχη εξωτερική τιμή για να σας βοηθήσει να ορίσετε την τρέχουσα γραμμή στην οποία θα λειτουργεί. Εάν from_type και to_type οι δύο έχουν τιμή ABS, τα παρακάτω ισχύουν μόνο για τις partitionBy στήλες:
- Εάν υπάρχει ακριβώς μία αντίστοιχη εξωτερική στήλη, χρησιμοποιείται η τιμή της.
- Εάν δεν υπάρχει αντίστοιχη εξωτερική στήλη:
- WINDOW Πρώτα, προσδιορίζει όλες τις στήλες που δεν έχουν αντίστοιχη εξωτερική στήλη.
- Για κάθε συνδυασμό υπαρχουσών τιμών για αυτές τις στήλες στο WINDOWγονικό περιβάλλον του, WINDOW αξιολογείται και επιστρέφονται οι αντίστοιχες γραμμές.
- WINDOWΤο τελικό αποτέλεσμα είναι μια ένωση αυτών των γραμμών.
- Εάν υπάρχουν περισσότερες από μία αντίστοιχες εξωτερικούς στήλες, επιστρέφεται σφάλμα.
Εάν όλες οι στήλες του relationέχουν προστεθεί από DAX συναρτήσεις πίνακα, επιστρέφεται σφάλμα.
Εάν matchBy υπάρχει, WINDOW επιχειρεί να χρησιμοποιήσει matchBy στήλες και partitionBy για να προσδιορίσει τη γραμμή.
Εάν matchBy το δεν υπάρχει και οι στήλες που καθορίζονται μέσα orderBy στο και partitionBy δεν μπορούν να αναγνωρίσουν με μοναδικό τρόπο κάθε γραμμή στο relation:
- WINDOW Το προσπαθεί να βρει τον ελάχιστο αριθμό πρόσθετων στηλών που απαιτούνται για τη μοναδική αναγνώριση κάθε γραμμής.
- Εάν είναι δυνατή η αναζήτηση τέτοιων στηλών, WINDOW προσαρτά αυτόματα αυτές τις νέες στήλες στο
orderByκαι κάθε διαμέρισμα ταξινομείται χρησιμοποιώντας αυτό το νέο σύνολο στηλών orderBy. - Εάν δεν είναι δυνατή η εμφάνιση τέτοιων στηλών, επιστρέφεται σφάλμα.
Επιστρέφεται ένας κενός πίνακας εάν:
- Η αντίστοιχη εξωτερική τιμή μιας
orderByστήλης ήpartitionByδεν υπάρχει εντόςrelationτης . - Ολόκληρο το παράθυρο βρίσκεται εκτός του διαμερίσματος ή η αρχή του παραθύρου είναι μετά το τέλος του.
Εάν χρησιμοποιείτε WINDOW μέσα σε μια υπολογιζόμενη στήλη που ορίζεται στον ίδιο πίνακα με relationτο και orderBy παραλείπεται, επιστρέφεται σφάλμα.
Εάν η αρχή του παραθύρου είναι πριν από την πρώτη γραμμή, ορίζεται στην πρώτη γραμμή. Παρομοίως, εάν το τέλος του παραθύρου είναι μετά την τελευταία γραμμή του διαμερίσματος, ορίζεται στην τελευταία γραμμή.
Μπορείτε να χρησιμοποιήσετε reset μόνο σε υπολογισμούς απεικονίσεων και δεν μπορείτε να το χρησιμοποιήσετε σε συνδυασμό με orderBy το ή partitionByτο . Εάν reset υπάρχει, μπορείτε να καθορίσετε axis αλλά όχι relation.
Εάν η τιμή του reset είναι απόλυτη (ένας θετικός ακέραιος, HIGHESTPARENTή μια αναφορά πεδίου) και ο υπολογισμός αξιολογείται στο ή πάνω από το επίπεδο προορισμού στην ιεραρχία, πραγματοποιείται επαναφορά του υπολογισμού για κάθε μεμονωμένο στοιχείο. Δηλαδή, η συνάρτηση αξιολογείται μέσα σε ένα διαμέρισμα που περιέχει μόνο αυτό το συγκεκριμένο στοιχείο.
Παραδείγματα σε αυτό το άρθρο μπορούν να χρησιμοποιηθούν με το δείγμα μοντέλου Adventure Works DW 2020 Power BI Desktop. Για να λάβετε το μοντέλο, ανατρέξτε DAX δείγμαμοντέλου .
Παράδειγμα 1 - μέτρηση
Η παρακάτω μέτρηση:
3-day Average Price =
AVERAGEX (
WINDOW (
-2,
REL,
0,
REL,
SUMMARIZE ( ALLSELECTED ( 'Sales' ), 'Date'[Date], 'Product'[Product] ),
ORDERBY ( 'Date'[Date] ),
KEEP,
PARTITIONBY ( 'Product'[Product] )
),
CALCULATE ( AVERAGE ( Sales[Unit Price] ) )
)
Επιστρέφει τον μέσο όρο 3 ημερών των τιμών μονάδας για κάθε προϊόν. Το παράθυρο των 3 ημερών αποτελείται από τρεις ημέρες κατά τις οποίες το προϊόν είχε πωλήσεις, όχι απαραίτητα τρεις συνεχόμενες ημερολογιακές ημέρες.
Παράδειγμα 2 - μέτρηση
Η παρακάτω μέτρηση:
RunningSum =
SUMX (
WINDOW (
1,
ABS,
0,
REL,
ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] ),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Επιστρέφει το τρέχον άθροισμα για τις Συνολικές πωλήσεις κατά Μήνας Αριθμός έτους, επανεκκινώντας για κάθε οικονομικό έτος:
| Έτος | Αριθμός μήνα του έτους | Ποσό πωλήσεων | RunningSum |
|---|---|---|---|
| ΟΕ2018 | 1 | $1,327,675 | $1,327,675 |
| ΟΕ2018 | 2 | $3,936,463 | $5,264,138 |
| ΟΕ2018 | 3 | $700,873 | $5,965,011 |
| ΟΕ2018 | 4 | $1,519,275 | $7,484,286 |
| ΟΕ2018 | 5 | $2,960,378 | $10,444,664 |
| ΟΕ2018 | 6 | $1,487,671 | $11,932,336 |
| ΟΕ2018 | 7 | $1,423,357 | $13,355,693 |
| ΟΕ2018 | 8 | $2,057,902 | $15,413,595 |
| ΟΕ2018 | 9 | $2,523,948 | $17,937,543 |
| ΟΕ2018 | 10 | $561,681 | $18,499,224 |
| ΟΕ2018 | 11 | $4,764,920 | $23,264,145 |
| ΟΕ2018 | 12 | $596,747 | $23,860,891 |
| ΟΕ2019 | 1 | $1,847,692 | $1,847,692 |
| ΟΕ2019 | 2 | $2,829,362 | $4,677,054 |
| ΟΕ2019 | 3 | $2,092,434 | $6,769,488 |
| ΟΕ2019 | 4 | $2,405,971 | $9,175,459 |
| ΟΕ2019 | 5 | $3,459,444 | $12,634,903 |
| ΟΕ2019 | 6 | $2,850,649 | $15,485,552 |
| ΟΕ2019 | 7 | $2,939,691 | $18,425,243 |
| ΟΕ2019 | 8 | $3,964,801 | $22,390,045 |
| ΟΕ2019 | 9 | $3,287,606 | $25,677,650 |
| ΟΕ2019 | 10 | $2,157,287 | $27,834,938 |
| ΟΕ2019 | 11 | $3,611,092 | $31,446,030 |
| ΟΕ2019 | 12 | $2,624,078 | $34,070,109 |
| ΟΕ2020 | 1 | $3,235,187 | $3,235,187 |
| ΟΕ2020 | 2 | $4,070,046 | $7,305,233 |
| ΟΕ2020 | 3 | $4,429,833 | $11,735,066 |
| ΟΕ2020 | 4 | $4,002,614 | $15,737,680 |
| ΟΕ2020 | 5 | $5,265,797 | $21,003,477 |
| ΟΕ2020 | 6 | $3,465,241 | $24,468,717 |
| ΟΕ2020 | 7 | $3,513,064 | $27,981,781 |
| ΟΕ2020 | 8 | $5,247,165 | $33,228,947 |
| ΟΕ2020 | 9 | $5,104,088 | $38,333,035 |
| ΟΕ2020 | 10 | $3,542,150 | $41,875,184 |
| ΟΕ2020 | 11 | $5,151,897 | $47,027,081 |
| ΟΕ2020 | 12 | $4,851,194 | $51,878,275 |
Παράδειγμα 3 - υπολογισμός απεικόνισης
Ο παρακάτω υπολογισμός απεικόνισης DAX ερώτημα:
TotalSalesRunningSumByYear =
SUMX ( WINDOW ( 0, ABS, 0, REL, ROWS, HIGHESTPARENT ), [SalesAmount] )
Επιστρέφει τις συνολικές πωλήσεις αθροιστικών πωλήσεων κατά μήνα, υπολογιζόμενο κατά έτος. Η τιμή 1 μπορεί να χρησιμοποιηθεί αντί για HIGHESTPARENT, με το ίδιο αποτέλεσμα.
Το παρακάτω στιγμιότυπο οθόνης εμφανίζει τη μήτρα απεικόνισης και την παράσταση υπολογισμού απεικόνισης:
υπολογισμού απεικόνισης
Παράδειγμα 4 - υπολογισμός απεικόνισης
Ο παρακάτω υπολογισμός απεικόνισης DAX ερώτημα:
TotalSalesRunningSumByQuarter =
SUMX ( WINDOW ( 0, ABS, 0, REL,, -1 ), [SalesAmount] )
Επιστρέφει τις συνολικές πωλήσεις ανά μήνα, υπολογιζόμενες σε κάθε τρίμηνο.
Η τιμή LOWESTPARENT μπορεί να χρησιμοποιηθεί αντί για -1, με το ίδιο αποτέλεσμα.