SQLLab
Все статьи

SQL для менеджеров: зачем руководителю знать язык запросов

Зачем продакт-менеджеру и маркетологу знать SQL. Что можно делать с SQL без помощи аналитиков, реальные примеры запросов для бизнеса.

22 марта 2026 г.·3 мин чтения·

SQL — не только для разработчиков и аналитиков. Продакты и маркетологи с SQL в 2–3 раза эффективнее коллег без него.

Почему менеджеру нужен SQL

Независимость. Без SQL вы зависите от аналитиков: поставили задачу, ждёте 2–5 дней, получили ответ — возникли новые вопросы, цикл повторяется. Со SQL вы отвечаете на вопросы сами за 5 минут.

Скорость решений. Гипотеза проверяется немедленно, пока встреча ещё идёт.

Точность формулировок. Когда вы можете написать запрос сами, вы точнее ставите задачи аналитикам для сложных задач.

Конкурентное преимущество. По данным hh.ru, менеджеры с SQL получают на 20–35% больше.

Что можно делать с базовым SQL

Проверить гипотезу немедленно

«А правда ли что пользователи из мобильного приложения покупают чаще?»

SELECT
    source,
    COUNT(DISTINCT user_id) AS users,
    COUNT(*) AS orders,
    ROUND(1.0 * COUNT(*) / COUNT(DISTINCT user_id), 2) AS orders_per_user
FROM orders
JOIN users ON orders.user_id = users.id
GROUP BY source;

Сегментировать пользователей

-- Разбивка по сумме покупок
SELECT
    CASE
        WHEN total_spent >= 50000 THEN 'VIP'
        WHEN total_spent >= 10000 THEN 'Лояльный'
        ELSE 'Новый'
    END AS segment,
    COUNT(*) AS users
FROM (
    SELECT user_id, SUM(amount) AS total_spent FROM orders GROUP BY user_id
) t
GROUP BY segment;

Найти отток

-- Пользователи, не делавшие заказов 60+ дней
SELECT COUNT(*) AS churned_users
FROM users
WHERE id NOT IN (
    SELECT DISTINCT user_id FROM orders
    WHERE created_at > NOW() - INTERVAL '60 days'
);

Посмотреть эффект акции

-- Сравнение выручки до и после акции
SELECT
    CASE
        WHEN created_at < '2024-03-01' THEN 'До акции'
        ELSE 'После акции'
    END AS period,
    COUNT(DISTINCT DATE(created_at)) AS days,
    SUM(amount) AS revenue,
    ROUND(SUM(amount) / COUNT(DISTINCT DATE(created_at)), 0) AS revenue_per_day
FROM orders
WHERE created_at BETWEEN '2024-02-01' AND '2024-04-01'
GROUP BY period;

Найти топ-продукты

SELECT
    p.name,
    COUNT(*) AS orders_count,
    SUM(oi.quantity) AS units_sold,
    SUM(oi.price * oi.quantity) AS revenue
FROM order_items oi
JOIN products p ON oi.product_id = p.id
WHERE oi.created_at >= NOW() - INTERVAL '30 days'
GROUP BY p.id, p.name
ORDER BY revenue DESC
LIMIT 10;

Что НЕ нужно менеджеру

Менеджеру не нужно:

  • Оконные функции (достаточно базовых агрегатов)
  • Оптимизация запросов
  • DDL (создание таблиц)
  • Хранимые процедуры

Достаточно SELECT + WHERE + GROUP BY + простые JOIN.

Как научиться за 3 недели

Неделя 1: SELECT, WHERE, ORDER BY — 15 задач Неделя 2: GROUP BY, COUNT, SUM, AVG — 15 задач Неделя 3: LEFT JOIN (пользователи + заказы) — 10 задач

Итого: ~2–3 часа в неделю. После этого 80% повседневных аналитических вопросов решаются самостоятельно.

Реальная история

Типичный сценарий: продакт хочет узнать конверсию по источникам трафика. Без SQL — задача аналитику, ответ через 3 дня. С SQL — 10 минут на написание запроса, ответ получен на той же встрече.

Умение задавать вопросы данным напрямую меняет скорость принятия решений.

Похожие статьи

Попробуй на практике

Тренажёр с реальными задачами — бесплатно и без регистрации

Открыть тренажёр →