Επιστρέφει μια Μεταβλητή (συμβολοσειρά) που υποδεικνύει πού εμφανίζεται ένας αριθμός μέσα σε μια υπολογιζόμενη σειρά περιοχών.
Σύνταξη
Partition(αριθμός; έναρξη; διακοπή; διάστημα)
Η σύνταξη της συνάρτησης Partition περιλαμβάνει τα εξής ορίσματα:
| Επιχείρημα | Περιγραφή |
|---|---|
| αριθμός | Υποχρεωτικό. Ο ακέραιος αριθμός που θέλετε να υπολογίσετε σε σχέση με τις περιοχές. |
| Έναρξη | Υποχρεωτικό. Ακέραιος αριθμός που είναι η αρχή της συνολικής περιοχής αριθμών. Ο αριθμός δεν μπορεί να είναι μικρότερος από το 0. |
| Σταμάτα | Υποχρεωτικό. Ακέραιος αριθμός που είναι το τέλος της συνολικής περιοχής αριθμών. Ο αριθμός δεν μπορεί να είναι ίσος ή μικρότερος από τον αριθμό. |
| interval | Υποχρεωτικό. Ακέραιος αριθμός που καθορίζει το μέγεθος των διαμερισμάτων μέσα στη συνολική περιοχή αριθμών (μεταξύ έναρξης και διακοπής). |
Παρατηρήσεις
Η συνάρτηση Partition προσδιορίζει τη συγκεκριμένη περιοχή στην οποία εμπίπτει ο αριθμός και επιστρέφει μια Μεταβλητή (συμβολοσειρά) που περιγράφει αυτή την περιοχή. Η συνάρτηση Partition είναι πιο χρήσιμη στα ερωτήματα. Μπορείτε να δημιουργήσετε ένα ερώτημα επιλογής που δείχνει πόσες παραγγελίες εμπίπτουν σε διάφορες περιοχές, για παράδειγμα, τιμές παραγγελιών από 1 έως 1000, 1001 έως 2000 και ούτω καθεξής.
Ο παρακάτω πίνακας δείχνει πώς καθορίζονται οι περιοχές χρησιμοποιώντας τρία σύνολα ορισμάτων έναρξης, διακοπής και χρονικού διαστήματος . Οι στήλες First Range και Last Range δείχνουν τι διαμέρισμα επιστρέφεται. Οι περιοχές αντιπροσωπεύονται από την τιμή lowervalue:uppervalue, όπου η τιμή lowend (lowervalue) της περιοχής διαχωρίζεται από την υψηλή τιμή (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.
Εάν χρειάζεται, το διαμέρισμα επιστρέφει μια περιοχή με αρκετά αρχικά κενά διαστήματα ώστε να υπάρχει ο ίδιος αριθμός χαρακτήρων αριστερά και δεξιά της άνω και κάτω τελείας με τους χαρακτήρες διακοπής, συν έναν. Αυτό εξασφαλίζει ότι εάν χρησιμοποιήσετε το διαμέρισμα με άλλους αριθμούς, το κείμενο που προκύπτει θα αντιμετωπιστεί σωστά κατά τη διάρκεια οποιασδήποτε επόμενης λειτουργίας ταξινόμησης.
Εάν το διάστημα είναι 1, η περιοχή είναι αριθμός:αριθμός, ανεξάρτητα από τα ορίσματα έναρξης και διακοπής . Για παράδειγμα, εάν το διάστημα είναι 1, ο αριθμός είναι 100 και η διακοπή είναι 1000, το διαμέρισμα επιστρέφει " 100: 100".
Εάν οποιοδήποτε από τα μέρη είναι Null, το Partition επιστρέφει Null.
Παραδείγματα ερωτήματος
| Έκφραση | Αποτελέσματα |
|---|---|
| SELECT Διαμέρισμα(τιμήμονάδας;40;240;20) AS Εύρος_τιμών; count(productsales.unitPrice) AS Count FROM productSales GROUP BY Partition(τιμή_μονάδας;40;240;20); | Δημιουργεί ένα σύνολο περιοχών τιμών για τις τιμές του πεδίου "τιμή_μονάδας" από "έναρξη"(40) έως "διακοπή"(240) με ίσο μέγεθος "διάστημα"(20) και υπολογισμό του πλήθους της "τιμή_μονάδας" σε αντίστοιχες περιοχές. Εμφανίζει τις περιοχές στη στήλη PriceRange και το πλήθος στη στήλη "Count". |
Παράδειγμα 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);