Zwraca wartość typu wariant (ciąg) wskazującą, gdzie w obliczonej serii zakresów występuje dana liczba.
Składnia
Partition(liczba, początek, stop, interwał)
W składni funkcji Partycja występują następujące argumenty:
| Argumenty argumentów | Opis |
|---|---|
| number | Argument wymagany. Liczba całkowita, która ma zostać obliczona w odniesieniu do zakresów. |
| Ekran startowy | Argument wymagany. Liczba całkowita będąca początkiem całego zakresu liczb. Liczba ta nie może być mniejsza od 0. |
| stop | Argument wymagany. Liczba całkowita będąca końcem całego zakresu liczb. Liczba nie może być równa ani mniejsza niż wartość początkowa. |
| Interwał | Argument wymagany. Liczba całkowita określająca rozmiar partycji w ogólnym zakresie liczb (między początkiem a zatrzymaniem). |
Uwagi
Funkcja Partition identyfikuje konkretny zakres, w którym mieści się liczba , i zwraca wartość typu Wariant (String) opisującą ten zakres. Funkcja Partition jest najbardziej przydatna w przypadku zapytań. Możesz utworzyć zapytanie wybierające pokazujące liczbę zamówień należących do różnych zakresów, na przykład wartości zamówień od 1 do 1000, od 1001 do 2000 itd.
W poniższej tabeli pokazano, jak zakresy są określane przy użyciu trzech zestawów argumentów start, stop i interwał . Kolumny Pierwszy zakres i Ostatni zakres pokazują, co zwraca partycja . Zakresy są reprezentowane przez argument dolnawartość:górnawartość, gdzie dolna granica (dolna wartość) zakresu jest oddzielona od górnej granicy (górna wartość) zakresu dwukropkiem (:).
| Ekran startowy | stop | Interwał | 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, gdy start i stop definiuje zbiór liczb, których nie można równo podzielić przez interwał. Ostatni zakres rozciąga się do pozycji stop (11 liczb), mimo że interwał wynosi 20.
W razie potrzeby funkcja Partition zwraca zakres z wystarczającą ilością spacji początkowych, aby po lewej i prawej stronie dwukropka znajdowała się taka sama liczba znaków, jak liczba znaków w kolumnie stop plus jeden. 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 ma wartość liczba:liczba, niezależnie od argumentów start i stop . Jeśli na przykład interwał wynosi 1, liczba 100, a stop 1000, funkcja Partition zwraca wartość " 100: 100".
Jeśli którakolwiek z części ma wartość Null, partycja zwraca wartość Null.
Przykłady kwerend
| Wyrażenie | Rezultat |
|---|---|
| SELECT Partition(cenajednostkowa,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 "cenajednostkowa" od "start"(40) do "stop"(240) z równą wielkością "interwał"(20) i oblicza liczbę wartości "cenajednostkowa" w odpowiednich zakresach. Wyświetla zakresy w kolumnie PriceRange i liczbę w kolumnie "Count". |
Przykład kodu VBA
W tym przykładzie założono, że tabela Zamówienia zawiera pole Fracht. Tworzy procedurę wyboru, która zlicza zlecenia, dla których koszt frachtu mieści się w każdym z kilku zakresów. Funkcja Partition służy najpierw do ustalenia 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. Pierwszy zakres będzie zatem wynosił 0:49 i tak dalej, aż 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);