Узел Разность
dataset subtraction big

Узел Разность генерирует таблицу данных, которая является дополнением к другой таблице данных. Чтобы понять логику узла Разность, можно вспомнить о диаграммах Венна.

В теории множеств дополнение – это ряд элементов, не принадлежащих данному множеству. В контексте баз данных под дополнением обычно понимается таблица с записями, которые не входят в другую таблицу. Например, предположим, что у нас есть 3 таблицы данных – А, В и С. Таблица B содержит некоторое подмножество записей из A; таблица C содержит остаток записей из таблицы A, которые не входят в B. Таблица C при этом называется дополнением B.

Уточним, что ни B, ни C не считаются дополнениями таблицы A.

Узел Разность расположен в разделе Операции со строками в палитре узлов. Данный узел можно сравнить с узлом Фильтрация строк, поскольку он также создает подмножество записей из другой таблицы. Узел Разность не изменяет колонки таблицы данных.

Колонки в выходной таблице узла (в созданном узлом подмножестве записей) не отличаются от колонок исходной таблицы.

Пример создания дополнения к таблице данных

Для примера рассмотрим следующую таблицу данных (Таблица А):

Колонка A

Колонка B

Колонка C

a

1

2

b

3

4

Предположим, что вам нужно отфильтровать некоторые записи из этой таблицы данных. Например, вам нужно создать таблицу, состоящую только из тех записей, в которых Колонка A содержала бы значение "а" (Таблица B).

Колонка A

Колонка B

Колонка C

a

1

2

Теперь предположим, что вам нужно найти все записи в Таблице A, которые не входят в Таблицу B. Для создания такой таблицы данных вы можете использовать узел Разность. Таблица будет выглядеть следующим образом:

Колонка A

Колонка B

Колонка C

b

3

4

Выбор между узлами Разность и Фильтрация строк

Бывают ситуации, когда можно использовать узел Фильтрация строк для получения тех же результатов, что и при работе с узлом Разность. Например, в описанном выше случае вы могли бы создать узел Фильтрация строк с выражением Column A = "a". Затем вы могли бы создать второй узел фильтрации строк с выражением Column A = "b". Второй узел Фильтрации строк выполнил бы ту же задачу, что и узел Разность.

Один из недостатков использования узла Фильтрация строк в этом случае выявляется при последующем использовании проекта. Например, если позже вам понадобится изменить условие, используемое в первом узле Фильтрация строк, вам придется изменить выражение и во втором узле. Вероятность ошибки в таком случае повышается.

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

Еще один недостаток узла фильтрации строк – в отсутствии гибкости. Узел Разность может создать дополнение на основе любых двух исходных таблиц. Узел не ограничен использованием той же таблицы данных, что и узел, с которым проводится сравнение. В этом состоит отличие: оба узла фильтрации строк должны использовать одну и ту же таблицу. Небольшое ограничение узла Разность состоит в том, что две таблицы данных, используемых узлом на входе, для правильной настройки узла должны иметь как минимум одну общую колонку.

Соединения на скрипте

Узел Разность должен быть на входе соединен с двумя узлами, создающими таблицы данных. Выходными данными узла является новая таблица данных, которая может быть использована любыми узлами, которые в качестве исходных данных принимают таблицу.

При настройке соединений необходимо указать роль обеих исходных таблиц данных. Одна из них является подмножеством (правое соединение), другая – супермножеством (левое соединение).

difference leftright.rus

Порядок, в котором вы настраиваете соединения, не имеет значения.

Левосторонняя и правосторонняя таблицы

Таблица слева считается большей по размеру таблицей, которая может содержать таблицу справа. Узел Разность находит в таблице слева те записи, которые содержатся в таблице справа, и объединяет их в новую таблицу на выходе.