UNION

Мова: Українська
Цю статтю перекладено з англійської за допомогою ШІ, тому вона може містити помилки. Ваші відгуки допоможуть нам її покращити.

Опис

Функція 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 підраховує кількість унікальних ідентифікаторів бенефіціарів.

Наступний елемент
Довідка