Zwraca wartość typu wariant (ciąg) wskazującą miejsce wystąpienia liczby w obliczonej serii zakresów.
Składnia
Partition(number, start, stop, interval)
W składni funkcji Partycja występują następujące argumenty:
| Argument | Opis |
|---|---|
| number | Argument wymagany. Liczba całkowita, która ma zostać obliczona względem zakresów. |
| Uruchomić | Argument wymagany. Liczba całkowita będąca początkiem ogólnego zakresu liczb. Liczba nie może być mniejsza niż 0. |
| Zatrzymać | Argument wymagany. Liczba całkowita będąca końcem ogólnego zakresu liczb. Liczba nie może być równa lub mniejsza niż wartość początkowa. |
| Interwał | Argument wymagany. Liczba całkowita określająca rozmiar partycji w ogólnym zakresie liczb (od początku do zatrzymania). |
Uwagi
Funkcja Partycja identyfikuje określony zakres, w którym liczba spada, i zwraca wartość typu wariant (ciąg) opisującą ten zakres. Funkcja Partycja jest najbardziej przydatna w zapytaniach. Możesz utworzyć zapytanie wybierające pokazujące, ile zamówień należy do różnych zakresów, na przykład od 1 do 1000, od 1001 do 2000 itd.
W poniższej tabeli przedstawiono sposób określania zakresów przy użyciu trzech zestawów argumentów rozpoczęcia, zatrzymania i interwału . Kolumny Pierwszy zakres i Ostatni zakres pokazują, co zwraca funkcja Partycja . Zakresy są reprezentowane przez wartość dolną:wartość_wyższej, gdzie dolny koniec (niższa wartość) zakresu jest oddzielony od wartości górnej (górnej) zakresu dwukropkiem (:).
| Uruchomić | Zatrzymać | 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 przedstawionej powyżej tabeli trzeci wiersz przedstawia wynik po rozpoczęciu i zatrzymaniu definiowania zestawu liczb, których nie można równomiernie podzielić przez interwał. Ostatni zakres rozciąga się, aby zatrzymać (11 liczb), mimo że interwał wynosi 20.
W razie potrzeby funkcja Partycja zwraca zakres zawierający wystarczającą liczbę spacji wiodących, dzięki czemu z lewej i z prawej strony dwukropka jest taka sama liczba znaków, jak znaki w kolumnie stop, plus jeden. Dzięki temu w przypadku używania funkcji Partycja z innymi liczbami podczas kolejnych operacji sortowania tekst wyniku będzie obsługiwany poprawnie.
Jeśli argument interwał ma wartość 1, zakres to liczba:liczba, niezależnie od argumentów początku i zatrzymania . Jeśli na przykład interwał wynosi 1, liczba to 100, a argument "stop " to 1000, funkcja Partycja zwraca wartość " 100: 100".
Jeśli którakolwiek z tych części ma wartość Null, funkcja Partycja zwraca wartość Null.
Przykłady zapytań
| Wyrażenie | Rezultat |
|---|---|
| SELECT Partition(cena_jednostkowa;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 "cena_jednostkowa" od "start"(40) do "stop"(240) o jednakowym rozmiarze "interwał"(20) i oblicza liczbę "cenajedna" w odpowiednich zakresach. Wyświetla zakresy w kolumnie PriceRange i liczebniki w kolumnie "Liczba". |
Przykład języka VBA
W tym przykładzie założono, że masz tabelę Zamówienia zawierającą pole Fracht. Tworzy procedurę wyboru, która zlicza zamówienia, dla których koszt frachtu spada w każdym z kilku zakresów. Funkcja Partycja służy najpierw do ustalania tych zakresów, a następnie funkcja SQL Count zlicza liczbę zamówień w każdym zakresie. W tym przykładzie argumenty funkcji Partycja są następujące: start = 0, stop = 500, interwał = 50. Pierwszy zakres to zatem 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);