Мова: Українська
Опис
Функція UNION обчислює нову таблицю, яка містить усі рядки з кожного з двох або більше табличних виразів.
Використання
UNION(<Table Expression>, <Table Expression2>, <Table Expression3>)
Функція UNION обчислює нову таблицю, яка містить усі рядки з кожного з двох табличних виразів.
- Кожна таблиця повинна мати однакову кількість колонок.
- Колонки об'єднуються за позицією у відповідних таблицях.
- Назви колонок у поверненій таблиці відповідатимуть назвам колонок у першому аргументі таблиці.
- Дубльовані рядки зберігаються.
- Повернена таблиця має походження, де це можливо. Наприклад, якщо перша колонка кожного table_expression має походження від однієї й тієї ж базової колонки C1 у моделі, перша колонка в результаті
UNION матиме походження від C1. Однак, якщо об'єднані колонки мають походження від різних базових колонок, або якщо
існує колонка розширення, результуюча колонка в UNION не матиме походження. - Якщо типи даних відрізняються, результуючий тип даних визначається на основі правил приведення типів даних.
- Повернена таблиця не міститиме колонок з пов'язаних таблиць.
Приклади
Підрахунок унікальних бенефіціарів у кількох видах діяльності
Функція UNION корисна для об'єднання схожої інформації, що зберігається в кількох формах. Наприклад, якщо ви керуєте програмою, яка надає тренінги та позики одній і тій самій групі людей, вас може зацікавити, скільки унікальних осіб ви підтримали за кожен квартал.
Якщо деталі про тренінги та позики зберігаються в різних формах, вам знадобиться функція UNION, щоб спочатку об'єднати список одержувачів, а потім знайти кількість унікальних бенефіціарів.
Потім вам потрібно об'єднати дату та ідентифікатор бенефіціара з двох форм за допомогою union. Наприклад:
UNION(
SELECTCOLUMNS(participants,
"date", @parent.date,
"beneficiary", participant),
SELECTCOLUMNS(loans,
"date", disbursement_date,
"beneficiary", recipient)) |>
COUNTDISTINCTX(beneficiary)
У наведеному вище прикладі ми повинні спочатку змінити структуру двох форм, «Учасники» та «Позики», щоб вони мали однакові поля в однаковому порядку. Для учасників тренінгу відповідна дата фактично походить з батьківської форми та пов'язана з тренінгом. Для позик ми вирішили використовувати дату видачі.
Потім функція UNION надає нам один великий довгий список ідентифікаторів бенефіціарів, а COUNTDISTINCTX підраховує кількість унікальних ідентифікаторів бенефіціарів.