Επιστρέφει μια Μεταβλητή (Συμβολοσειρά) που υποδεικνύει πού εμφανίζεται ένας αριθμός μέσα σε μια υπολογιζόμενη σειρά περιοχών.
Σύνταξη
Partition( αριθμός, έναρξη, διακοπή, διάστημα)
Η σύνταξη της συνάρτησης Partition περιλαμβάνει τα παρακάτω ορίσματα:
Όρισμα |
Περιγραφή |
αριθμός |
Υποχρεωτικό. Ακέραιος αριθμός που θέλετε να υπολογίσετε σε συνάρτηση με τις περιοχές τιμών. |
έναρξη |
Υποχρεωτικό. Ακέραιος αριθμός που είναι η αρχή της συνολικής περιοχής αριθμών. Ο αριθμός δεν μπορεί να είναι μικρότερος από 0. |
διακοπή |
Υποχρεωτικό. Ακέραιος αριθμός που είναι το τέλος της συνολικής περιοχής αριθμών. Ο αριθμός δεν μπορεί να είναι ίσος ή μικρότερος από την αρχή. |
interval |
Υποχρεωτικό. Ακέραιος αριθμός που καθορίζει το μέγεθος των διαμερισμάτων εντός της συνολικής περιοχής αριθμών (μεταξύ έναρξης και s top). |
Παρατηρήσεις
Η συνάρτηση Partition προσδιορίζει τη συγκεκριμένη περιοχή στην οποία ο αριθμός πέφτει και επιστρέφει μια Μεταβλητή (Συμβολοσειρά) που περιγράφει αυτή την περιοχή. Η συνάρτηση Partition είναι περισσότερο χρήσιμη στα ερωτήματα. Μπορείτε να δημιουργήσετε ένα ερώτημα επιλογής που δείχνει πόσες παραγγελίες εμπίπτουν σε διάφορες περιοχές, για παράδειγμα, τιμές παραγγελίας από 1 έως 1000, 1001 έως 2000 κ.ο.κ.
Ο παρακάτω πίνακας δείχνει πώς καθορίζονται οι περιοχές χρησιμοποιώντας τρία σύνολα ορισμάτων έναρξης, διακοπής και χρονικού διαστήματος . Οι στήλες "Πρώτη περιοχή" και "Τελευταία περιοχή" δείχνουν τι επιστρέφει το διαμέρισμα . Οι περιοχές αντιπροσωπεύονται από τις τιμές lowervalue:uppervalue, όπου το κατώτερο άκρο (κατώτερη τιμή) της περιοχής διαχωρίζεται από το high end (uppervalue) της περιοχής με άνω και κάτω τελεία (:).
έναρξη |
διακοπή |
interval |
Πριν από πρώτα |
Πρώτη περιοχή |
Τελευταία περιοχή |
Μετά το τέλος |
0 |
99 |
5 |
" :-1" |
" 0: 4" |
" 95: 99" |
" 100: " |
20 |
199 |
10 |
" : 19" |
" 20: 29" |
" 190: 199" |
" 200: " |
100 |
1010 |
20 |
" : 99" |
" 100: 119" |
" 1000: 1010" |
" 1011: " |
Στον πίνακα που εμφανίζεται παραπάνω, η τρίτη γραμμή εμφανίζει το αποτέλεσμα κατά την έναρξη και τη διακοπή να καθορίσει ένα σύνολο αριθμών που δεν μπορεί να διαιρεθεί ομοιόμορφα ανά διάστημα. Η τελευταία περιοχή εκτείνεται σε διακοπή (11 αριθμοί), παρόλο που το διάστημα είναι 20.
Εάν είναι απαραίτητο, η συνάρτηση Partition επιστρέφει μια περιοχή με αρκετά αρχικά κενά διαστήματα, ώστε να υπάρχει ο ίδιος αριθμός χαρακτήρων στα αριστερά και τα δεξιά της άνω και κάτω τελείας όπως και οι χαρακτήρες στο τέλος, συν ένα. Αυτό εξασφαλίζει ότι εάν χρησιμοποιήσετε διαμέρισμα με άλλους αριθμούς, ο χειρισμός του κειμένου που προκύπτει θα γίνει σωστά κατά τη διάρκεια οποιασδήποτε επακόλουθης λειτουργίας ταξινόμησης.
Εάν το διάστημα είναι 1, η περιοχή είναι αριθμός:αριθμός, ανεξάρτητα από τα ορίσματα έναρξης και διακοπής . Για παράδειγμα, εάν το διάστημα είναι 1, ο αριθμός είναι 100 και ο στοπ είναι 1000, το διαμέρισμα επιστρέφει " 100: 100".
Εάν οποιοδήποτε από τα τμήματα είναι Null, η συνάρτηση Partition επιστρέφει την τιμή Null.
Παραδείγματα ερωτημάτων
Expression |
Αποτελέσματα |
SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); |
Δημιουργεί ένα σύνολο περιοχών για τις τιμές στο πεδίο "τιμή_μονάδας" από "start"(40) έως "stop"(240) με ίσο μέγεθος "interval"(20) και υπολογίζει το πλήθος της "τιμής_μονάδας" στις αντίστοιχες περιοχές. Εμφανίζει τις περιοχές στη στήλη PriceRange και το πλήθος στη στήλη "Πλήθος". |
Παράδειγμα VBA
Αυτό το παράδειγμα προϋποθέτει ότι έχετε έναν πίνακα "Παραγγελίες" που περιέχει ένα πεδίο "Μεταφορικά". Δημιουργεί μια διαδικασία επιλογής που καταμετρά τον αριθμό των παραγγελιών για τις οποίες το κόστος μεταφοράς εμπίπτει σε καθεμία από τις διάφορες περιοχές. Η συνάρτηση Partition χρησιμοποιείται πρώτα για τον καθορισμό αυτών των περιοχών και, στη συνέχεια, η συνάρτηση SQL Count καταμετρά τον αριθμό των παραγγελιών σε κάθε περιοχή. Σε αυτό το παράδειγμα, τα ορίσματα της συνάρτησης Partition είναι start = 0, stop = 500, interval = 50. Το πρώτο εύρος θα ήταν συνεπώς 0:49 και ούτω καθεξής έως και 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count FROM Orders GROUP BY Partition([freight],0,500,50);