Връща стойност от тип Variant (String), указваща къде се среща число в изчисляема последователност от диапазони.
Синтаксис
Partition(число; начало; стоп; интервал)
Синтаксисът на функцията Partition има следните аргументи:
| Аргумент | Описание |
|---|---|
| число | Задължително. Цяло число, което искате да оцените спрямо диапазоните. |
| "Старт" | Задължително. Цяло число, което е началото на общия диапазон от числа. Числото не може да е по-малко от 0. |
| стоп | Задължително. Цяло число, което е краят на общия диапазон от числа. Числото не може да бъде равно на или по-малко от "начало". |
| интервал | Задължително. Цяло число, което задава размера на дяловете в общия диапазон от числа (между начало и край). |
Забележки
Функцията Partition идентифицира конкретния диапазон, в който попада числото , и връща стойност от тип Variant (низ), описваща този диапазон. Функцията Partition е най-полезна в заявки. Можете да създадете заявка за избиране, която показва колко поръчки попадат в различни диапазони, например стойности на поръчки от 1 до 1000, от 1001 до 2000 и т.н.
Следващата таблица показва как се определят диапазоните с помощта на три набора от аргументи за начало, спиране и интервал . Колоните "Първи диапазон" и "Последен диапазон" показват какво връща дялът . Диапазоните се представят с lowervalue:uppervalue, където ниският край (lowervalue) на диапазона е отделен от високия край (uppervalue) на диапазона с двоеточие (:).
| "Старт" | стоп | интервал | Преди първия | Първи диапазон | Последен обхват | След последен |
|---|---|---|---|---|---|---|
| 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, Partition връща " 100: 100".
Ако някоя от частите е Null, Partition връща Null.
Примери за заявки
| Израз | Резултати |
|---|---|
| SELECT Partition(единична цена;40;240;20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice;40;240;20); | Създава набор от диапазони за стойностите в полето "единична цена" от "старт"(40) до "стоп"(240) с еднакъв размер "интервал"(20) и изчислява броя на "единична цена" в съответните диапазони. Показва диапазоните в колона PriceRange и count в колона "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);