WINDOW
Ισχύει για:Υπολογιζόμενη στήλη
Υπολογιζόμενος πίνακας
Μέτρηση
υπολογισμού απεικόνισης
Επιστρέφει πολλές γραμμές που βρίσκονται εντός του δεδομένου διαστήματος.
Σύνταξη
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 . |
axis |
(Προαιρετικό) Ένας άξονας στο σχήμα απεικόνισης. Διατίθεται μόνο σε υπολογισμούς απεικονίσεων και αντικαθιστά relation . |
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
.
Παράδειγμα 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])
Επιστρέφει τις συνολικές πωλήσεις ανά μήνα, υπολογιζόμενες σε κάθε τρίμηνο.
Σχετικό περιεχόμενο
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM