EXISTS, INTERSECT и EXCEPT: задачи SQL на условия по множествам
SQL-практика: EXISTS, пересечение и разность множеств, условия «для всех» и ловушка NOT IN с NULL.
Состав подборки: 4 задачи на код, 1 вопрос с выбором ответа. Условия и формат проверки указаны на странице каждой задачи.
Разберите маленький пример
Пусть A = {1, 2, 3}, B = {2, 3, 4}. Пересечение — {2, 3}, а A без B — {1}. Повторная покупка одной категории не добавляет нового клиента в множество. Сначала сформулируйте условие на клиента, затем переводите его в операции над строками.
На что обратить внимание
- EXISTS проверяет наличие подходящей строки, а не её количество.
- Разность направлена: A EXCEPT B и B EXCEPT A отвечают на разные вопросы.
- NOT IN с NULL в подзапросе может дать неожиданный результат из-за трёхзначной логики.
- Для условия «купил все обязательные товары» учитывайте и случай пустого обязательного набора по условию задачи.
Порядок практики
- SQL: INTERSECT и EXCEPT — Покупатели обеих категорий — код.
- SQL: INTERSECT и EXCEPT — Участники SQL и Git без посещения Python — код.
- SQL: Коррелированные подзапросы и EXISTS — Клиенты с завершённым заказом от 1000 — код.
- SQL: Реляционное деление: условия «для всех» — Клиенты, купившие все обязательные товары — код.
- NOT IN и NULL в SQL: почему исчезли ожидаемые строки — выбор ответа.
Куда двигаться дальше
Эти упражнения взяты из базового и продвинутого маршрутов. Для дальнейшей практики — платный курс «Продвинутый SQL».
- SQL: INTERSECT и EXCEPT — Покупатели обеих категорий
Практика: INTERSECT и EXCEPT. Покупатели обеих категорий. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - SQL: INTERSECT и EXCEPT — Участники SQL и Git без посещения Python
Практика: INTERSECT и EXCEPT. Участники SQL и Git без посещения Python. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - SQL: Коррелированные подзапросы и EXISTS — Клиенты с завершённым заказом от 1000
Практика: Коррелированные подзапросы и EXISTS. Клиенты с завершённым заказом от 1000. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - SQL: Реляционное деление: условия «для всех» — Клиенты, купившие все обязательные товары
Практика: Реляционное деление: условия «для всех». Клиенты, купившие все обязательные товары. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - NOT IN и NULL в SQL: почему исчезли ожидаемые строки
Внешний запрос с NOT IN неожиданно даёт пустой результат. Выберите объяснение и способ исправления условия.
SQL с нуля: бесплатный курс с практикой
