Все материалы
Продуктовая аналитикапрактикумсредний

Операторы SQL: шпаргалка для аналитика с примерами применения

Большая шпаргалка по SQL-операторам: фильтрация, сравнение, агрегаты, JOIN, окна, строки, даты и JSONB с маршрутами для практики.

КПКейсПрактика9 августа 2026 г.8 мин

Справочник синтаксиса редко помогает в момент задачи: нужно понять, фильтровать строки или группы, добавить атрибут или проверить наличие, получить ровно три строки или сохранить ничьи. Шпаргалка полезна, когда она организована по рабочим решениям, а не по алфавиту. Разберём вопрос на одном запросе: Как быстро выбрать оператор SQL под задачу и не перепутать похожие конструкции?

Когда нужен этот приём

Как быстро выбрать оператор SQL под задачу и не перепутать похожие конструкции?

Если вопрос звучит «сколько пользователей сделали X в течение семи дней», нужны базовая когорта, EXISTS или дедупликация и явное окно. Если «топ-3 в каждой категории», нужен агрегатный слой и RANK или ROW_NUMBER. Сначала классифицируй задачу, затем выбирай синтаксис.

не запоминай всё — узнавай паттерн

Используй шпаргалку как карту выбора. Для точного ответа важнее определить зерно и окно, чем вспомнить редкий оператор. После этого проверь запрос на дубли, NULL, пустой период и стабильность сортировки.

Логика оператора

SQL для аналитика можно собрать в паттерны: отобрать строки, привести тип, сгруппировать, соединить, проверить наличие, сравнить с соседней строкой, объединить потоки и извлечь свойства. Один и тот же оператор может быть правильным или опасным в зависимости от зерна результата.

Начни с четырёх вопросов: что является строкой результата, откуда берём факты, где происходит фильтр и допускаются ли повторы. После этого выбери семейство операторов и добавь тест на границы. В тренажёре полезно решать один кейс несколькими способами.

  • Зафиксируй одну строку результата.
  • Отдели условия по исходным строкам от условий по рассчитанным значениям.
  • Назови период, ключи связи и правило для повторов.

Рабочая версия

Названия таблиц здесь условные. При переносе сохрани зерно и бизнес-условия, а не буквальный синтаксис примера.

Комбинация базовых паттернов для активной аудитории
WITH user_day AS (
  SELECT DISTINCT user_id, occurred_at::date AS day
  FROM events
  WHERE occurred_at >= TIMESTAMP '2026-07-01 00:00:00'
)
SELECT day, COUNT(*) AS active_users
FROM user_day GROUP BY day ORDER BY day;

Как сверить ответ

Собери пять-десять строк, где ответ можно получить вручную. Добавь NULL, дубль, объект без связанной записи и значение на границе периода. Затем сравни число строк и уникальных ключей до и после спорного шага.

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

Оператор по рабочему вопросу
ВопросСтартовый инструментПроверка
какие строки оставить?WHEREпериод и NULL
какие группы оставить?HAVINGагрегатный уровень
есть ли связанная строка?EXISTSone-to-many
топ внутри группы?RANK / ROW_NUMBERничьи
сравнить с прошлым?LAG / LEADсортировка

Когда выбрать другой способ

Самые дорогие ошибки не в запятых: неверный знаменатель, размножение после JOIN, включённый незрелый день, NULL в NOT IN и рейтинг до GROUP BY. Проверяй результат на маленьком наборе и смотри на cardinality каждого слоя.

Используй шпаргалку как карту выбора. Для точного ответа важнее определить зерно и окно, чем вспомнить редкий оператор. После этого проверь запрос на дубли, NULL, пустой период и стабильность сортировки.

Слой SQL-паттернов в аналитической задаче

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

Блоки

Небольшой эксперимент

Выбери одну рабочую метрику и собери её из базовых блоков: WHERE, GROUP BY, JOIN, CASE и окно. Затем запиши, какие блоки можно заменить и что при этом изменится. Такой разбор превращает шпаргалку в навык, а не в коллекцию заклинаний.

  • Сначала запиши ожидаемый результат словами.
  • Проверь запрос на маленькой контрольной выборке.
  • Объясни, что запрос считает и чего не доказывает.

Следующий шаг

Используй шпаргалку как карту выбора. Для точного ответа важнее определить зерно и окно, чем вспомнить редкий оператор. После этого проверь запрос на дубли, NULL, пустой период и стабильность сортировки.

Продолжить чтение
Вся библиотека