0Pricing
Digital Marketing Academy · Урок

SELECT, WHERE, GROUP BY

Агрегируйте данные кампаний

«SELECT, WHERE, GROUP BY» — бесплатный урок Digital Marketing Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Digital Marketing Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Digital Marketing Academy содержит 4 уроков всего.

Три глагола

Почти любая маркетинговая метрика строится на трёх конструкциях: SELECT выбирает столбцы, WHERE фильтрует строки, а GROUP BY объединяет строки в сегменты.

Освойте эту тройку — и сможете самостоятельно отвечать на большинство повседневных вопросов аналитики.

SELECT channel, SUM(revenue) AS revenue
FROM orders
GROUP BY channel;

SELECT: выбор столбцов

SELECT перечисляет данные, которые вы хотите получить. С помощью AS можно переименовать столбцы, чтобы сделать результат понятнее, а также вычислить новые значения прямо в запросе.

Не перегружайте наборы результатов: выбирайте только действительно нужные столбцы, особенно в больших таблицах.

SELECT campaign_id AS campaign,
       spend,
       spend * 1.2 AS spend_with_fees
FROM campaigns;

WHERE: фильтрация строк

WHERE оставляет только строки, соответствующие условию. Объединяйте условия с помощью AND и OR, чтобы точно выделить нужный сегмент.

Фильтры по датам — основа работы маркетолога: они точно задают период отчётности.

SELECT *
FROM sessions
WHERE channel = 'email'
  AND session_date >= DATE '2026-01-01'
  AND device = 'mobile';

Фильтрация с помощью IN и BETWEEN

IN проверяет совпадение с любым значением из списка и отлично подходит для нескольких кампаний одновременно. BETWEEN задаёт диапазон и особенно удобен для периодов дат.

Эти конструкции делают сложные фильтры короткими и понятными вместо длинных цепочек OR.

SELECT order_id, revenue
FROM orders
WHERE channel IN ('paid_search', 'paid_social')
  AND order_date BETWEEN DATE '2026-03-01' AND DATE '2026-03-31';

GROUP BY: сегментация

GROUP BY объединяет строки с одинаковым значением в одну строку для каждой группы. Используйте его вместе с агрегатными функциями, такими как SUM, COUNT и AVG, чтобы получать метрики по сегментам.

Так необработанные события превращаются в таблицу эффективности по каждому каналу.

SELECT channel,
       COUNT(*) AS sessions,
       SUM(revenue) AS revenue
FROM sessions
GROUP BY channel;

Агрегатные функции

SUM суммирует доход, COUNT подсчитывает события, AVG вычисляет среднее значение, а COUNT(DISTINCT ...) считает уникальных пользователей.

Подсчёт уникальных значений важен в маркетинге: общее число сеансов и число уникальных посетителей — это совершенно разные показатели.

SELECT campaign_id,
       COUNT(*) AS clicks,
       COUNT(DISTINCT user_id) AS reach,
       AVG(revenue) AS avg_order
FROM orders
GROUP BY campaign_id;

Группировка по нескольким столбцам

Группируйте данные более чем по одному столбцу, чтобы построить матрицу, например по каналу и устройству. Каждое уникальное сочетание становится отдельной строкой.

Это позволяет выполнять более глубокую сегментацию без экспорта данных в электронную таблицу.

SELECT channel, device,
       COUNT(*) AS sessions
FROM sessions
GROUP BY channel, device
ORDER BY channel, sessions DESC;

HAVING: фильтрация групп

WHERE фильтрует строки до группировки, а HAVING — группы после агрегации. Используйте HAVING, чтобы оставить только сегменты выше заданного порога.

Например, выведите только кампании, которые принесли более 100 заказов.

SELECT campaign_id, COUNT(*) AS orders
FROM orders
GROUP BY campaign_id
HAVING COUNT(*) > 100
ORDER BY orders DESC;

Сортировка и ограничение

ORDER BY сортирует результаты, чтобы самые важные строки отображались первыми. LIMIT ограничивает количество отображаемых строк — это особенно удобно для отчётов по лидерам.

Вместе они мгновенно отвечают на вопрос: «Каковы мои топ-5 кампаний по выручке?»

SELECT campaign_id, SUM(revenue) AS revenue
FROM orders
GROUP BY campaign_id
ORDER BY revenue DESC
LIMIT 5;

Условная агрегация

FILTER (или CASE внутри агрегатной функции) позволяет одному запросу одновременно вычислять несколько условных метрик, например выручку от новых и вернувшихся клиентов.

Так вы избегаете запуска нескольких запросов и сохраняете полное соответствие сегментов.

SELECT channel,
       SUM(revenue) FILTER (WHERE is_new_customer) AS new_rev,
       SUM(revenue) FILTER (WHERE NOT is_new_customer) AS repeat_rev
FROM orders
GROUP BY channel;

Собираем всё вместе

Полный запрос объединяет все секции: фильтрует строки с помощью WHERE, группирует их, фильтрует группы с помощью HAVING, а затем сортирует и ограничивает результат.

Читайте его сверху вниз — и он расскажет целостную аналитическую историю о ваших каналах.

SELECT channel, SUM(revenue) AS revenue
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY channel
HAVING SUM(revenue) > 1000
ORDER BY revenue DESC;

Быстрая проверка

Вы хотите оставить только группы кампаний с более чем 50 заказами. Какая секция фильтрует агрегированные группы?

Итоги

SELECT выбирает столбцы, WHERE фильтрует строки, GROUP BY формирует сегменты, HAVING фильтрует группы, а ORDER BY и LIMIT формируют результат.

С помощью условной агрегации вы вычисляете несколько метрик за один проход. Далее: объединение данных из нескольких таблиц с помощью JOIN.

Часто задаваемые вопросы

Урок «SELECT, WHERE, GROUP BY» бесплатный?

Да — полный текст урока «SELECT, WHERE, GROUP BY» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Digital Marketing Academy, подпишись на CoddyKit PRO. Курс Digital Marketing Academy содержит 4 уроков всего.

Чему я научусь в уроке «SELECT, WHERE, GROUP BY»?

Агрегируйте данные кампаний Ты практикуешь Digital Marketing Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Digital Marketing Academy?

Предыдущий опыт не требуется. Digital Marketing Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «SELECT, WHERE, GROUP BY»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Digital Marketing Academy?

Да. Каждый урок Digital Marketing Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Зачем маркетологам изучать SQL
  2. SELECT, WHERE, GROUP BY
  3. Объединение маркетинговых таблиц
  4. Запросы по когортам и воронкам
← Назад к Digital Marketing Academy