Соединения JOIN

Скрыть список уроков

Тренируемся объединять таблицы между собой - INNER JOIN, LEFT JOIN, FULL OUTER JOIN

SQL

18. Банк - спящие клиенты

Вывести клиентов, не совершивших ни одной транзакции.
Поля результата
client_id, name
Список таблиц
Ваш запрос
Исходные таблицы

clients

ПолеКомментарий
client_idклиент
nameимя

transactions

ПолеКомментарий
txn_idтранзакция
client_idклиент (NULL)
amountсумма
txn_dateдата

SQL

19. Маркетплейс - выручка

Посчитать выручку по каждому товару с учётом цены за единицу и количества; позиции с товарами, которых нет в справочнике, показать как «UNKNOWN».
Поля результата
product_id, product_name, revenue, orders_cnt
Список таблиц
Ваш запрос
Исходные таблицы

order_items

ПолеКомментарий
order_idзаказ
product_idтовар
qtyкол-во
priceцена

products

ПолеКомментарий
product_idтовар
product_nameназвание
categoryкатегория

SQL

20. Страхование

Вывести всех клиентов и их полисы, оформленные только в 2024 году; клиенты без полисов 2024 года должны остаться в выдаче с NULL.
Поля результата
client_id, name, policy_id, start_date, premium
Список таблиц
Ваш запрос
Исходные таблицы

clients

ПолеКомментарий
client_idклиент
nameимя
regionрегион

policies

ПолеКомментарий
policy_idполис
client_idклиент
start_dateдата начала
premiumпремия

SQL

21. HR - иерархия

Вывести сотрудника, имя его руководителя (включая сотрудников без руководителя) и флаг, получает ли сотрудник больше своего руководителя.
Поля результата
employee_id, name, manager_name, earns_more_than_manager
Список таблиц
Ваш запрос
Исходные таблицы

employees

ПолеКомментарий
employee_idсотрудник
nameимя
dept_idотдел
manager_idруководитель (NULL)
salaryзарплата

SQL

22. Финтех - сверка

Вывести заказы без платежа и платежи без заказа, пометив их в колонке issue значениями 'нет оплаты' и 'оплата без заказа'. Заказы с оплатой не отображаем.
Поля результата
order_id, issue
Список таблиц
Ваш запрос
Исходные таблицы

orders

ПолеКомментарий
order_idзаказ
order_dateдата
amountсумма

payments

ПолеКомментарий
payment_idплатёж
order_idзаказ
paid_atдата
amountсумма

SQL

23. ВЭД - валютные сделки

Посчитать сумму каждой сделки в рублях по курсу на дату сделки, а при отсутствии курса на эту дату - по ближайшему предыдущему. Показать сам курс и его дату, чтобы пересчёт можно было проверить. Курс присоединить соединением; подзапрос допускается только внутри условия ON - чтобы выбрать нужную дату курса.
Поля результата
deal_id, rate_date, rate, amount_rub
Список таблиц
Ваш запрос
Исходные таблицы

deals

ПолеКомментарий
deal_idсделка
deal_dateдата
currencyвалюта
amountсумма

rates

ПолеКомментарий
currencyвалюта
rate_dateдата курса
rateкурс