tgoop.com/big_data_systems_analysis/67
Last Update:
EXCEPT в SQL: ищем уникальные значения
Оператор разности EXCEPT служит для сравнения двух наборов данных. Он извлекает уникальные значения из первого, отсутствующие во втором наборе.
EXCEPT — инструмент для фильтрации данных и поиска различий между таблицами. Он позволяет выполнять сравнение в одном или нескольких столбцах, в этом случае сравнение идёт кортежами.
Важно помнить, что при выполнении операции EXCEPT автоматически устраняются дубликаты строк. Если строка существует во втором наборе данных, она не появится в окончательном результате, даже если в первом наборе присутствует несколько раз.
Для использования оператора необходимо, чтобы в обоих наборах данных было указано одинаковое количество столбцов, а их порядок и типы данных должны быть сопоставимыми.
Синтаксис:
select column_1
from table_name_1
[where condition]
except
select column_1
from table_name_2
[where condition]
order by column_1
Если результирующий набор данных нужно отсортировать, то после второго набора данных указывается
order by
.Также EXCEPT можно заменить на JOIN (и чаще всего это может дать прирост производительности):
select t1.column_1
from table_name_1 t1
left join table_name_2 t2
on t1.column_1 = t2.column_1
where t2.column_1 is NULL
order by t1.column_1
Однако использование EXCEPT делает запрос более читабельным. Что касается эффективности — её лучше тестировать (и по возможности смотреть планы запросов) на реальных данных с учётом индексов и прочих особенностей в конкретных СУБД.
Но не только EXCEPT и LEFT JOIN помогают выявлять уникальные значения в данных. В одном из следующих постов вспомним с вами о таких методах вычитания как NOT IN и NOT EXISTS.
#sql
BY В мире больших данных
Share with your friend now:
tgoop.com/big_data_systems_analysis/67