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


WINDOW

Ισχύει για:Υπολογιζόμενη στήληΥπολογιζόμενος πίνακαςMeasureΥπολογισμός απεικόνισης

Επιστρέφει πολλές γραμμές που βρίσκονται εντός του δεδομένου διαστήματος.

Σύνταξη

WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Παράμετροι

Όρος Ορισμός
from Υποδεικνύει από πού ξεκινά η window. Μπορεί να είναι οποιαδήποτε παράσταση DAX που επιστρέφει μια ανυσματική value.
Η συμπεριφορά εξαρτάται από την παράμετρο from_type:
- Iffrom_type είναι REL, ο αριθμός των γραμμών προς επιστροφή (αρνητικές value) or εμπρός (θετικό value) από την τρέχουσα γραμμή για τη λήψη της first γραμμής στον window.
- Iffrom_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 πρέπει να καθοριστεί ρητά.
- AllorderByandpartitionBy παραστάσεις πρέπει να είναι πλήρως προσδιορισμένα ονόματα στηλών and προέρχονται από έναν μόνο πίνακα.
- Η προεπιλογή είναι ALLSELECTED() των all στηλών orderByandpartitionBy.
axis (Προαιρετικό) Ένας άξονας στο σχήμα απεικόνισης. Διατίθεται μόνο σε υπολογισμούς απεικονίσεων and αντικαθιστά relation.
orderBy (Προαιρετικό) Ένας όρος ORDERBY() που περιέχει τις παραστάσεις που define τον τρόπο ταξινόμησης κάθε διαμερίσματος.
If παραλείπεται:
- relation πρέπει να καθοριστεί ρητά.
- Ορίζει από προεπιλογή την ταξινόμηση από κάθε στήλη σε relation που έχει not έχει ήδη καθοριστεί στο partitionBy.
blanks (Προαιρετικό) Μια απαρίθμηση που καθορίζει τον τρόπο χειρισμού blankvalues κατά την ταξινόμηση του relationoraxis.
Οι υποστηριζόμενες values είναι οι εξής:
  • DEFAULT (το προεπιλεγμένο value), όπου blankvalues η συμπεριφορά για τις αριθμητικές values είναι ταξινομημένη μεταξύ μηδέν and αρνητικών values. Η συμπεριφορά για τις συμβολοσειρές είναι blankvalues ταξινομούνται πριν από all συμβολοσειρές, συμπεριλαμβανομένων των κενών συμβολοσειρών.
  • FIRST, τα κενά ταξινομούνται πάντα στην αρχή, ανεξάρτητα από την αύξουσα or τη φθίνουσα σειρά ταξινόμησης.
  • LAST, τα κενά ταξινομούνται πάντα στο τέλος, ανεξάρτητα από την αύξουσα or φθίνουσα σειρά ταξινόμησης.

Σημείωση, όταν η παράμετρος blanksand κενών στη συνάρτηση ORDERBY() σε μεμονωμένες παραστάσεις καθορίζεται και οι δύο, blanks στην μεμονωμένη παράσταση orderBy έχει προτεραιότητα για τη σχετική orderBy παράσταση, andorderBy παραστάσεις χωρίς blanks που καθορίζονται θα τηρούν την παράμετρο blanks στη γονική συνάρτηση.
partitionBy (Προαιρετικό) Ένας PARTITIONBY() όρος που περιέχει τις στήλες που define τον τρόπο διαμερίσματος της relation. If παραλείπεται, relation αντιμετωπίζεται ως ένα μόνο διαμέρισμα.
matchBy (Προαιρετικό) Ένας όρος MATCHBY() που περιέχει τις στήλες που define τον τρόπο αντιστοίχισης των δεδομένων and την αναγνώριση της τρέχουσας γραμμής.
reset (Προαιρετικό) Διατίθεται μόνο σε υπολογισμούς απεικονίσεων. Υποδεικνύει if επαναφέρει τον υπολογισμό and σε ποιο επίπεδο της ιεραρχίας στηλών του σχήματος απεικόνισης. Οι αποδεκτοί values είναι: μια αναφορά πεδίου σε μια στήλη στο τρέχον σχήμα απεικόνισης, NONE (προεπιλογή), LOWESTPARENTHIGHESTPARENTor ακέραιος. Η συμπεριφορά εξαρτάται από τον ακέραιο sign:
- If παραλειφθεί μηδέν or, ο υπολογισμός not επαναφέρεται. Ισοδύναμο με NONE.
- If θετικό, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από την υψηλότερη, ανεξάρτητα από το επίπεδο λεπτομέρειας. HIGHESTPARENT ισοδυναμεί με 1.
- If αρνητικός, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από το χαμηλότερο, σε σχέση με το τρέχον επίπεδο λεπτομέρειας. LOWESTPARENT ισοδυναμεί με -1.

Επιστροφή value

All γραμμές από το window.

Παρατηρήσεις

Except για στήλες που προστίθενται από DAX συναρτήσεις πίνακα, κάθε στήλη σε relation, όταν matchBynot, or κάθε στήλη σε matchByandpartitionBy, όταν υπάρχει 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 θα προσπαθήσει να χρησιμοποιήσει matchByandpartitionBy στήλες για να αναγνωρίσει τη γραμμή. If matchBy υπάρχει notand οι στήλες που καθορίζονται εντός του orderByandpartitionBy δεν μπορούν να αναγνωρίσουν με μοναδικό τρόπο κάθε γραμμή στο relationκαι, στη συνέχεια:

  • WINDOW θα προσπαθήσει να find τον ελάχιστο αριθμό πρόσθετων στηλών που απαιτούνται για τη μοναδική αναγνώριση κάθε γραμμής.
  • If βρίσκονται αυτές οι στήλες, WINDOW θα προσαρτήσει αυτόματα αυτές τις νέες στήλες στο orderByand κάθε διαμέρισμα ταξινομείται χρησιμοποιώντας αυτό το νέο σύνολο στηλών orderBy.
  • If δεν είναι δυνατό να βρεθούν τέτοιες στήλες, επιστρέφεται ένα error.

Επιστρέφεται ένας κενός πίνακας if:

  • Η αντίστοιχη εξωτερική value μιας στήλης orderByorpartitionBy υπάρχει not εντός του relation.
  • Ολόκληρη η window βρίσκεται εκτός του διαμερίσματος, or η αρχή της window είναι μετά τη λήξη της.

If WINDOW χρησιμοποιείται μέσα σε μια υπολογιζόμενη στήλη που ορίζεται στον ίδιο πίνακα με relationπαραλείπεται andorderBy, επιστρέφεται μια error.

If η αρχή του window αποδεικνύεται ότι προηγείται της γραμμής first και, στη συνέχεια, ορίζεται στη γραμμή first. Παρομοίως, if το τέλος της window ακολουθεί τη last γραμμή του διαμερίσματος και, στη συνέχεια, ορίζεται στη γραμμή last.

reset μπορούν να χρησιμοποιηθούν μόνο σε υπολογισμούς απεικονίσεων, and δεν μπορεί να χρησιμοποιηθεί σε συνδυασμό με orderByorpartitionBy. 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.

INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM