WINDOW
Ισχύει για:Υπολογιζόμενη στήληΥπολογιζόμενος πίνακαςMeasureΥπολογισμός απεικόνισης
Επιστρέφει πολλές γραμμές που βρίσκονται εντός του δεδομένου διαστήματος.
Σύνταξη
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Παράμετροι
Όρος | Ορισμός |
---|---|
from |
Υποδεικνύει από πού ξεκινά η window. Μπορεί να είναι οποιαδήποτε παράσταση DAX που επιστρέφει μια ανυσματική value.
Η συμπεριφορά εξαρτάται από την παράμετρο from_type : - If from_type είναι REL, ο αριθμός των γραμμών προς επιστροφή (αρνητικές value) or εμπρός (θετικό value) από την τρέχουσα γραμμή για τη λήψη της first γραμμής στον window.
- If from_type είναι ABS, andfrom είναι θετική, τότε είναι η θέση της αρχής του window από την αρχή του διαμερίσματος. Η δημιουργία ευρετηρίου βασίζεται σε 1 and το 0 ερμηνεύεται ως 1. Για παράδειγμα, 0 and 1 σημαίνει ότι η window ξεκινά από την αρχή του διαμερίσματος.
If
from είναι αρνητική, τότε είναι η θέση της αρχής του window από το τέλος του διαμερίσματος. -1 σημαίνει ότι η last γραμμή στο διαμέρισμα. |
from_type |
Συμπεριφορά τροποποίησης της παραμέτρου from . Οι πιθανές values είναι ABS (απόλυτες) and REL (σχετικές). Η προεπιλογή είναι REL. |
to |
Όμοια με from , αλλά υποδεικνύει το τέλος του window. Η last γραμμή περιλαμβάνεται στην window. |
to_type |
Όμοια με from_type , αλλά τροποποιεί τη συμπεριφορά του to . |
relation |
(Προαιρετικό) Μια παράσταση πίνακα από την οποία επιστρέφονται οι γραμμές εξόδου.
If καθορίζεται, all στήλες σε partitionBy πρέπει να προέρχονται από αυτήν or έναν πίνακα related.
If παραλείπεται: - orderBy πρέπει να καθοριστεί ρητά.- All orderBy andpartitionBy παραστάσεις πρέπει να είναι πλήρως προσδιορισμένα ονόματα στηλών and προέρχονται από έναν μόνο πίνακα.
- Η προεπιλογή είναι ALLSELECTED() των all στηλών orderBy andpartitionBy . |
axis |
(Προαιρετικό) Ένας άξονας στο σχήμα απεικόνισης. Διατίθεται μόνο σε υπολογισμούς απεικονίσεων and αντικαθιστά relation . |
orderBy |
(Προαιρετικό) Ένας όρος ORDERBY() που περιέχει τις παραστάσεις που define τον τρόπο ταξινόμησης κάθε διαμερίσματος.
If παραλείπεται: - relation πρέπει να καθοριστεί ρητά.
- Ορίζει από προεπιλογή την ταξινόμηση από κάθε στήλη σε relation που έχει not έχει ήδη καθοριστεί στο partitionBy . |
blanks |
(Προαιρετικό) Μια απαρίθμηση που καθορίζει τον τρόπο χειρισμού blankvalues κατά την ταξινόμηση του relation oraxis .
Οι υποστηριζόμενες values είναι οι εξής:
Σημείωση, όταν η παράμετρος blanks and κενών στη συνάρτηση ORDERBY() σε μεμονωμένες παραστάσεις καθορίζεται και οι δύο, blanks στην μεμονωμένη παράσταση orderBy έχει προτεραιότητα για τη σχετική orderBy παράσταση, andorderBy παραστάσεις χωρίς blanks που καθορίζονται θα τηρούν την παράμετρο blanks στη γονική συνάρτηση. |
partitionBy |
(Προαιρετικό) Ένας PARTITIONBY() όρος που περιέχει τις στήλες που define τον τρόπο διαμερίσματος της relation .
If παραλείπεται, relation αντιμετωπίζεται ως ένα μόνο διαμέρισμα. |
matchBy |
(Προαιρετικό) Ένας όρος MATCHBY() που περιέχει τις στήλες που define τον τρόπο αντιστοίχισης των δεδομένων and την αναγνώριση της τρέχουσας γραμμής. |
reset |
(Προαιρετικό) Διατίθεται μόνο σε υπολογισμούς απεικονίσεων. Υποδεικνύει if επαναφέρει τον υπολογισμό and σε ποιο επίπεδο της ιεραρχίας στηλών του σχήματος απεικόνισης. Οι αποδεκτοί values είναι: μια αναφορά πεδίου σε μια στήλη στο τρέχον σχήμα απεικόνισης, NONE (προεπιλογή), LOWESTPARENT HIGHESTPARENT or ακέραιος. Η συμπεριφορά εξαρτάται από τον ακέραιο sign: - If παραλειφθεί μηδέν or, ο υπολογισμός not επαναφέρεται. Ισοδύναμο με NONE .
- If θετικό, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από την υψηλότερη, ανεξάρτητα από το επίπεδο λεπτομέρειας. HIGHESTPARENT ισοδυναμεί με 1.
- If αρνητικός, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από το χαμηλότερο, σε σχέση με το τρέχον επίπεδο λεπτομέρειας. LOWESTPARENT ισοδυναμεί με -1. |
Επιστροφή value
All γραμμές από το window.
Παρατηρήσεις
Except για στήλες που προστίθενται από DAX συναρτήσεις πίνακα, κάθε στήλη σε relation
, όταν matchBy
not, or κάθε στήλη σε matchBy
andpartitionBy
, όταν υπάρχει matchBy
, πρέπει να έχει μια αντίστοιχη εξωτερική value για να σας βοηθήσει να define την τρέχουσα γραμμή στην οποία θα λειτουργήσει.
If
from_type
and
to_type
έχουν και οι δύο valueABS, τότε τα παρακάτω ισχύουν μόνο για τις partitionBy
στήλες:
- If υπάρχει ακριβώς μία αντίστοιχη εξωτερική στήλη, χρησιμοποιείται η value της.
-
If δεν υπάρχει αντίστοιχη εξωτερική στήλη:
- WINDOW θα καθορίσει firstall στήλες που δεν έχουν αντίστοιχη εξωτερική στήλη.
- Για κάθε συνδυασμό υπαρχουσών values για αυτές τις στήλες στο γονικό περιβάλλον του WINDOW, αξιολογείται WINDOWand επιστρέφονται οι αντίστοιχες γραμμές.
- WINDOW τελικό αποτέλεσμα είναι μια union αυτών των γραμμών.
- If υπάρχουν περισσότερες από μία αντίστοιχες εξωτερική στήλη, επιστρέφεται μια error.
If
all των στηλών του relation
προστέθηκαν από DAX συναρτήσεις πίνακα, επιστρέφεται μια error.
If
matchBy
υπάρχει, WINDOW θα προσπαθήσει να χρησιμοποιήσει matchBy
andpartitionBy
στήλες για να αναγνωρίσει τη γραμμή.
If
matchBy
υπάρχει notand οι στήλες που καθορίζονται εντός του orderBy
andpartitionBy
δεν μπορούν να αναγνωρίσουν με μοναδικό τρόπο κάθε γραμμή στο relation
και, στη συνέχεια:
- WINDOW θα προσπαθήσει να find τον ελάχιστο αριθμό πρόσθετων στηλών που απαιτούνται για τη μοναδική αναγνώριση κάθε γραμμής.
-
If βρίσκονται αυτές οι στήλες, WINDOW θα προσαρτήσει αυτόματα αυτές τις νέες στήλες στο
orderBy
and κάθε διαμέρισμα ταξινομείται χρησιμοποιώντας αυτό το νέο σύνολο στηλών orderBy. - If δεν είναι δυνατό να βρεθούν τέτοιες στήλες, επιστρέφεται ένα error.
Επιστρέφεται ένας κενός πίνακας if:
- Η αντίστοιχη εξωτερική value μιας στήλης
orderBy
orpartitionBy
υπάρχει not εντός τουrelation
. - Ολόκληρη η window βρίσκεται εκτός του διαμερίσματος, or η αρχή της window είναι μετά τη λήξη της.
If
WINDOW χρησιμοποιείται μέσα σε μια υπολογιζόμενη στήλη που ορίζεται στον ίδιο πίνακα με relation
παραλείπεται andorderBy
, επιστρέφεται μια error.
If η αρχή του window αποδεικνύεται ότι προηγείται της γραμμής first και, στη συνέχεια, ορίζεται στη γραμμή first. Παρομοίως, if το τέλος της window ακολουθεί τη last γραμμή του διαμερίσματος και, στη συνέχεια, ορίζεται στη γραμμή last.
reset
μπορούν να χρησιμοποιηθούν μόνο σε υπολογισμούς απεικονίσεων, and δεν μπορεί να χρησιμοποιηθεί σε συνδυασμό με orderBy
orpartitionBy
.
If
reset
υπάρχει, axis
μπορεί να καθοριστεί, αλλά δεν relation
.
Παράδειγμα 1 - measure
Το ακόλουθο measure:
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]))
)
Επιστρέφει τοdayaverage 3- τιμών μονάδας για κάθε product. Σημειώστε ότι ηdaywindow 3-αποτελείται από τρεις ημέρες κατά τις οποίες ο product έχει πωλήσεις, not απαραίτητα τρεις συνεχόμενες calendar ημέρες.
Παράδειγμα 2 - measure
Το ακόλουθο measure:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Επιστρέφει το sum συνολικών πωλήσεων κατά Month αριθμό Year, κάνοντας επανεκκίνηση για κάθε οικονομικό Year:
Year | Αριθμός MonthYear | Ποσό πωλήσεων | 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])
Επιστρέφει τις αθροιστικές συνολικές πωλήσεις κατά month, οι οποίες υπολογίζονται μαζί με κάθε year. Μπορεί να χρησιμοποιηθεί η values 1 and -2 αντί για HIGHESTPARENT
, με τα ίδια αποτελέσματα.
Το παρακάτω στιγμιότυπο οθόνης εμφανίζει τη μήτρα απεικόνισης and την παράσταση υπολογισμού απεικόνισης:
υπολογισμού απεικόνισης
Παράδειγμα 4 - υπολογισμός απεικόνισης
Ο παρακάτω υπολογισμός απεικόνισης DAX ερώτημα:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Επιστρέφει τις αθροιστικές συνολικές πωλήσεις κατά month, οι οποίες υπολογίζονται μαζί με κάθε quarter.
Related περιεχομένου
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM