-- Маркетологи запускают в приложении сервиса промо-кампании. Есть две таблицы:

COUNT и GROUP BY — это ключевые конструкции в SQL для анализа и агрегации данных.

Короткий ответ

Что ответить на собеседовании

COUNT и GROUP BY — это ключевые конструкции в 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?

Ответ

COUNT и GROUP BY — это ключевые конструкции в SQL для анализа и агрегации данных.

  • COUNT — функция, которая подсчитывает количество строк или значений в столбце. Например, чтобы узнать, сколько записей в таблице:
SELECT COUNT(*) FROM employees;
  • GROUP BY — оператор, который группирует строки по значению одного или нескольких столбцов. Это позволяет применять агрегатные функции (например, COUNT, SUM, AVG) к каждой группе отдельно.

Пример: подсчитать количество сотрудников в каждом отделе:

SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;

В результате вы получите список отделов с числом сотрудников в каждом.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку