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