Функция Partition

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Возвращает значение типа Variant (String), указывающее, в каком диапазоне из ряда рассчитываемых диапазонов находится число.

Синтаксис

Partition(number, start, stop, interval)

Функция Partition имеет аргументы, указанные ниже.

Аргумент Описание
Номер Обязательный аргумент. Целое число, которое нужно отнести к одному из диапазонов.
начало Обязательный аргумент. Целое число, представляющее начало совокупного диапазона чисел. Должно быть не меньше 0.
конец Обязательный аргумент. Целое число, представляющее конец совокупного диапазона чисел. Число не может быть равно или меньше начального значения.
интервал — обязательный аргумент. Целое число, указывающее размер секций в общем диапазоне чисел (между запуском и остановкой).

Замечания

Функция Partition определяет конкретный диапазон, в который попадает число , и возвращает значение Variant (String), описывающее этот диапазон. Чаще всего функция Partition используется в запросах. Например, можно создать запрос на выборку, чтобы выяснить распределение заказов по диапазонам в зависимости от их размера — от 1 до 1000, от 1001 до 2000 и т. д.

В следующей таблице показано, как диапазоны определяются с помощью трех наборов аргументов start, stop и interval . В столбцах "Первый диапазон" и "Последний диапазон" показаны возвращаемые функцией Partition значения. Диапазоны представлены значением lowervalue:uppervalue, где нижний конец (нижнее значение) диапазона отделяется от верхнего конца (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: "

В таблице, показанной выше, в третьей строке показан результат, когда start и stop определяют набор чисел, которые не могут быть равномерно разделены на интервал. Последний диапазон расширяется до остановки (11 чисел), даже если интервал равен 20.

При необходимости Partition возвращает диапазон с достаточным количеством пробелов, чтобы слева и справа от двоеточия было одинаковое количество символов , а также один. Это нужно для правильной сортировки данных, полученных при использовании функции Partition, вместе с другими числами.

Если интервал равен 1, диапазон имеет значение number:number, независимо от аргументов start и stop . Например, если интервал равен 1, число — 100, а значение stop — 1000, функция Partition возвращает значение "100: 100".

Если любая из частей равна NULL, функция Partition возвращает NULL.

Примеры запросов

Выражение Результаты
SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); Создает набор диапазонов для значений в поле "unitprice" от "start"(40) до "stop"(240) с равным размером interval(20) и вычисляет количество "unitprice" в соответствующих диапазонах. Отображает диапазоны в столбце PriceRange и count в столбце Count.

Пример VBA

В этом примере предполагается, что у вас есть таблица Orders (Заказы), содержащая поле Freight (СтоимостьДоставки). Создается запрос на выборку, где рассчитывается количество заказов в нескольких диапазонах стоимости доставки. Эти диапазоны задаются с помощью функции Partition, после чего функция SQL Count подсчитывает количество заказов в каждом из диапазонов. В данном примере функция Partition имеет следующие значения аргументов: начало — 0, конец — 500, интервал — 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);