Zwraca wartość typu wariant(ciąg),wskazującą, gdzie występuje liczba w obliczeniowej serii zakresów.
Składnia
Partition(liczba;początek;zatrzymanie;interwał)
W składni funkcji Partycja występują następujące argumenty:
Argument | Opis |
---|---|
number |
Argument wymagany. Liczba całość, która ma zostać oszacowana na tle zakresów. |
rozpoczynanie |
Argument wymagany. Liczba całkowita, czyli początek ogólnego zakresu liczb. Liczba nie może być mniejsza niż 0. |
zatrzymaj |
Argument wymagany. Liczba całkowita, która jest końcem ogólnego zakresu liczb. Liczba nie może być równa lub mniejsza od początku. |
interval |
Argument wymagany. Liczba całkowita określająca rozmiar partycji w ogólnym zakresie liczb (między wartościami początku i góry). |
Spostrzeżenia
Funkcja Partition określa określony zakres, w którym przypada liczba, i zwraca wartość typu wariant(ciąg)opisujący ten zakres. Funkcja Partycja jest najbardziej przydatna w zapytaniach. Można utworzyć zapytanie wybierające, które pokazuje, ile zamówień należy do różnych zakresów, na przykład wartości zamówień od 1 do 1000, od 1001 do 2000 i tak dalej.
W poniższej tabeli przedstawiono sposób, w jaki zakresy są określane przy użyciu trzech zestawów argumentów start,stopi interval. W kolumnach Pierwszy zakres i Ostatni zakres są wyświetlane wartości zwracane przez partycję. Zakresy są reprezentowane przez wartość niższą: górna,gdzie wartość dolna(dolna) zakresu jest oddzielona od najwyższego poziomu(górnawartość) zakresu dwukropkiem (:).
rozpoczynanie | zatrzymaj | interval | Przed pierwszym | Pierwszy zakres | Ostatni zakres | Po ostatnim |
---|---|---|---|---|---|---|
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: " |
W powyższej tabeli trzeci wiersz pokazuje wynik po rozpoczęciu i zatrzymaniu definiowania zestawu liczb, który nie może być równomiernie dzielony przezinterwał. Ostatni zakres rozszerza się do zatrzymania (11 liczb), nawet jeśli interwał wynosi 20.
W razie potrzeby funkcja Partition zwraca zakres z odpowiednią liczbą spacji wiodących, tak aby z lewej i prawej strony dwukropka była taka sama liczba znaków jak w przypadku znaków ciągu "stop" oraz jednego. Dzięki temu w przypadku użycia partycji z innymi liczbami wynikowy tekst będzie poprawnie obsługiwany podczas każdej kolejnej operacji sortowania.
Jeśli interwał wynosi 1, zakres to liczba:liczba,niezależnie od argumentów rozpoczęciai zatrzymania. Jeśli na przykład interwał wynosi 1, to liczba wynosi 100, a stop to 1000, funkcja Partition zwraca wartość " 100: 100".
Jeśli którakolwiek z części to Null, funkcja Partition zwraca wartość Null.
Przykłady zapytań
Wyrażenie | Wyniki |
---|---|
SELECT Partition(unitprice;40;240;20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice;40;240;20); |
Tworzy zestaw zakresów dla wartości w polu "cenajednorzędna" od "start" (40) do "stop"(240) o równym rozmiarze "interwał"(20) i oblicz liczbę "cenajjednorzędna" w odpowiednich zakresach. Wyświetla zakresy w kolumnie CenaRange i licznik w kolumnie "Liczba". |
Przykład VBA
W tym przykładzie przyjęto założenie, że tabela Zamówienia zawiera pole Fracht. Tworzy procedurę wybierania, która zlicza zamówienia, dla których koszt frachtowy należy do każdego z kilku zakresów. Funkcja Partition służy najpierw do ustanawiania tych zakresów, a następnie funkcja SQL Count zlicza zamówienia w każdym zakresie. W tym przykładzie argumenty funkcji Partition to start = 0, stop = 500, interval = 50. Dlatego pierwszy zakres będzie miał wartości 0:49 i tak dalej, do 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);