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