TGViewer
В мире больших данных В мире больших данных @big_data_systems_analysis · 301 subscribers
Post #67 91
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
  • ❤ 1
More from @big_data_systems_analysis
  1. Jul 28, 2026Продолжая тему тех самых SQL-скриптов на 1200 строк, хочу напомнить одну важную вещь, кото…
  2. Jul 15, 2026Борьба с ветряными мельницами Думаю, многим из вас уже набили оскомину разговоры об ИИ. Мн…
  3. Mar 8, 2026В этот день желаю женской части аудитории верить в себя и позволять быть себе любой без ог…
  4. Mar 6, 2026Этот мем — точная копия одного рабочего дня, который я, кажется, прожила уже раз двести 😄…
  5. Mar 4, 2026Знаете, какая фраза чаще всего дорого обходится компании? "Работает — и ладно" 🥂 Результа…
  6. Feb 26, 2026Дисциплина, конечно, прошла мимо меня 😄 в черновиках 1000 и 1 пост, но ни один из них не…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →