Повертає Variant (String) з указанням, де зустрічається число в рамках обчислюваного ряду діапазонів.
Синтаксис
Partition(число; початок, зупинка, інтервал)
Синтаксис функції Partition має такі аргументи:
| Аргумент | Опис |
|---|---|
| Номер | Обов’язковий аргумент. Ціле число, яке потрібно оцінити відносно діапазонів. |
| start | Обов’язковий аргумент. Ціле число, з якого починається загальний діапазон чисел. Число не може бути меншим за 0. |
| stop | Обов’язковий аргумент. Ціле число, на якому закінчується загальний діапазон чисел. Число не може бути дорівнювати або менше, ніж значення початку. |
| interval | — обов’язковий аргумент. Ціле число, яке визначає розмір розділів у межах загального діапазону чисел (між початком і зупинкою). |
Примітки
Функція 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: " |
У таблиці, наведеній вище, третій рядок відображає результат, коли початок і зупинка визначають набір чисел, які не можна рівномірно поділити на інтервал. Останній діапазон простягається до кінця (11 чисел), навіть якщо інтервал дорівнює 20.
За потреби функція Partition повертає діапазон із достатньою кількістю пробілів на початку, щоб ліворуч і праворуч від двокрапки було однакова кількість символів, що й символів у зупинці, плюс один. Завдяки цьому, коли ви використовуватимете функцію Partition з іншими числами, отриманий текст оброблятиметься належним чином під час усіх наступних операцій сортування.
Якщо аргумент interval має значення 1, діапазон має значення number:number незалежно від аргументів start і stop . Наприклад, якщо аргумент interval має значення 1, число – 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);