Таблицы в SQL обычно объединяют по ключевым столбцам, которые связывают данные между ними. Это могут быть:
-- # -- Маркетологи запускают в приложении сервиса промо-кампании. Есть две таблицы:
Таблицы в SQL обычно объединяют по ключевым столбцам, которые связывают данные между ними. Это могут быть:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
-- # -- Маркетологи запускают в приложении сервиса промо-кампании. Есть две таблицы:
-- # -- campaigns - список кампаний -- # -- - campaign - название кампании -- # -- - action_type - тип кампании: "push" или "banner"
-- # -- communications - лог бэкенда с отправками коммуникаций этих кампаний на пользователей -- # -- - user_id - идентификатор пользователя -- # -- - campaign - название кампании -- # -- - status - статус события: "success" или "error"
-- # -- 1. Изначально в таблице campaigns есть 4 строки:
-- # -- | campaign | action_type | -- # -- |-------------|-------------| -- # -- | promo_dogs | push | -- # -- | promo_cats | banner | <- случайно задублины -- # -- | promo_cats | banner | <- две строки -- # -- | promo_rats | push |
# -- Еще известно, что:
-- # -- кампании promo_dogs и promo_cats были успешно проведены на 100 пользователей и каждый пользователь получил по одной коммуникации, -- # -- а promo_rats только планируется.
-- # -- 1.1 Что выведет запрос:
SELECT campaign, COUNT(*) as rows, COUNT(DISTINCT co.user_id) AS users FROM campaigns AS ca INNER JOIN communications AS co ON ca.campaign = co.campaign GROUP BY ca.campaign AS campaign
-- # -- 1.2 Как изменится ответ, если поменять тип JOIN на LEFT? -- # -- 1.3 Укажите порядок выполнения операторов в этом запросе.
-- Ответ:
promo_dogs ... ...
Ответ
Таблицы в SQL обычно объединяют по ключевым столбцам, которые связывают данные между ними. Это могут быть:
- Первичные и внешние ключи: например, таблица заказов и таблица клиентов объединяются по ID клиента.
- Общие атрибуты: если таблицы содержат связанные данные с одинаковыми значениями в определённых столбцах.
Выбор признака объединения зависит от логики данных и задачи. В машинном обучении это важно для корректного объединения признаков и меток из разных источников, чтобы сохранить соответствие между записями.
Пример SQL-запроса с объединением по ключу:
SELECT * FROM orders o
JOIN customers c ON o.customer_id = c.id;