SQL-тренажёр для аналитиков

200+ задач с разборами — от SELECT до оконных функций. Решай как на настоящем собеседовании, прямо в Telegram.

200+SQL-задач
6тем
3уровня сложности
Начать решать бесплатно

Какие темы есть

SELECT и фильтрация

30+ задач

WHERE, LIKE, IN, BETWEEN, CASE WHEN — базовые конструкции, без которых не обходится ни одно собеседование.

JOIN

25+ задач

INNER, LEFT, RIGHT, FULL, CROSS, self-join — какой тип использовать и почему. Задачи с несколькими таблицами.

GROUP BY и агрегации

25+ задач

COUNT, SUM, AVG, HAVING, FILTER — группировка данных и подсчёт метрик.

Оконные функции

35+ задач

ROW_NUMBER, RANK, LAG, LEAD, SUM OVER — самая частая тема на собеседованиях middle-аналитиков.

Подзапросы и CTE

30+ задач

WITH, вложенные SELECT, EXISTS/NOT EXISTS — декомпозиция сложных запросов.

Работа с датами

20+ задач

DATE_TRUNC, EXTRACT, INTERVAL, генерация временных рядов — must have для продуктовой аналитики.

Примеры задач

Попробуйте решить — потом проверьте разбор.

Топ-3 товара по категориям

Middle
WITH ranked AS (
  SELECT category, product_id,
    SUM(quantity) AS total,
    ROW_NUMBER() OVER (
      PARTITION BY category
      ORDER BY SUM(quantity) DESC
    ) AS rn
  FROM order_items
  JOIN products USING (product_id)
  GROUP BY category, product_id
)
SELECT * FROM ranked WHERE rn <= 3;

ROW_NUMBER с PARTITION BY — одна из самых частых конструкций на собеседованиях.

D1 Retention по когортам

Senior
WITH first_visit AS (
  SELECT user_id,
    MIN(activity_date) AS first_date
  FROM user_activity
  GROUP BY user_id
)
SELECT
  DATE_TRUNC('week', first_date) AS cohort,
  COUNT(DISTINCT f.user_id) AS size,
  COUNT(DISTINCT ua.user_id) AS returned
FROM first_visit f
LEFT JOIN user_activity ua
  ON f.user_id = ua.user_id
  AND ua.activity_date = f.first_date + 1
GROUP BY cohort;

Когортный анализ — задача для продуктовых аналитиков уровня Senior.

Товары без заказов

Junior
SELECT p.product_id, p.name
FROM products p
LEFT JOIN order_items oi
  ON p.product_id = oi.product_id
WHERE oi.product_id IS NULL;

LEFT JOIN + WHERE IS NULL — проверяет понимание типов JOIN и работу с NULL.

Как устроен тренажёр

1

Выберите тему

JOIN, оконные функции, CTE — начните с того, что спрашивают чаще всего.

2

Решайте задачи

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

3

Читайте разборы

После ответа — подробное объяснение: почему этот вариант верный, частые ошибки и теория.

4

Отслеживайте прогресс

Стрик, лиги, квесты — как в Duolingo. Видно, какие темы уже освоены, а где нужно подтянуть.

Чем отличается от других SQL-тренажёров

КарьерникSQL AcademyStepikLeetCode
Фокус на собеседования+--+/-
Оконные функции35+ задачмаломалоангл.
Когорты, retention, воронки+---
Разборы на русском+++-
Мобильное приложениеTelegramwebwebweb
Геймификациястрик, лиги---
Бесплатно+частичночастичночастично

Частые вопросы

Сколько SQL-задач в тренажёре?

Более 200 задач по SQL, разбитых по темам: SELECT, JOIN, GROUP BY, оконные функции, подзапросы, CTE, работа с датами. Задачи регулярно пополняются.

Тренажёр бесплатный?

Да, основной функционал бесплатный. Вы можете решать задачи, читать разборы и отслеживать прогресс без оплаты.

Какой диалект SQL используется?

Вопросы ориентированы на стандартный SQL и PostgreSQL — именно их чаще всего спрашивают на собеседованиях аналитиков.

Подойдёт ли для подготовки к собеседованию?

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

Можно ли заниматься с телефона?

Да. Тренажёр работает как Telegram Mini App — открывается прямо в мессенджере на любом устройстве.

Чем отличается от SQL Academy или Stepik?

Карьерник заточен под собеседования аналитиков: задачи на оконные функции, когорты, воронки, retention — то, что реально спрашивают. Плюс геймификация: стрик, лиги, квесты.

Начни решать SQL-задачи прямо сейчас

200+ задач с разборами. Бесплатно. Прямо в Telegram.

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