Все темы

Как посчитать в SQL

Готовые запросы на частые вопросы — доля от общего, разница дат, последняя запись в группе, топ-N — каждый на учебной базе с результатом.

SQL
рецепты
даты
топ-N
дедупликация

С чего начать

Три материала, которые задают базу для остальных.

  1. 01RANK, DENSE_RANK и ROW_NUMBER в SQL: топ-N в каждой группе и ничьи
  2. 02Дубликаты в SQL: как найти и убрать дубли событий, не потеряв реальные действия
  3. 03Агрегация в SQL: COUNT, SUM, GROUP BY, HAVING и условные метрики

Материалы по теме

10 материалов

Продуктовая аналитика7 августа 2026 г.16 мин
Пять столбцов по убыванию, три первых выделены.

RANK, DENSE_RANK и ROW_NUMBER в SQL: топ-N в каждой группе и ничьи

Как построить рейтинг и топ-N внутри группы в SQL: чем RANK, DENSE_RANK и ROW_NUMBER отвечают на ничью, почему «топ-3» возвращает то три, то четыре строки, почему ранг нельзя фильтровать в WHERE, где PostgreSQL ставит NULL и когда вместо окна нужен LATERAL.

Читать материал
Продуктовая аналитика24 августа 2026 г.13 мин

Дубликаты в SQL: как найти и убрать дубли событий, не потеряв реальные действия

Как отличить повторную доставку события от повторного действия пользователя, выбрать ключ дедупликации и окно, оставить одну строку через ROW_NUMBER и проверить, что после очистки не исчезли настоящие заказы.

Читать материал
Продуктовая аналитика23 июля 2026 г.25 мин

Агрегация в SQL: COUNT, SUM, GROUP BY, HAVING и условные метрики

Большой разбор агрегации в SQL для аналитика: чем COUNT(*) отличается от COUNT(column), когда нужен DISTINCT, а когда GROUP BY, почему фильтр по агрегату уходит в HAVING и как считать несколько метрик одним запросом через CASE и FILTER.

Читать материал
Продуктовая аналитика21 июля 2026 г.17 мин
Горизонтальная шкала с делениями и выделенным отрезком.

SQL даты и время в аналитике: периоды, недели, календарь и инкрементальная загрузка

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

Читать материал
Продуктовая аналитика8 августа 2026 г.13 мин
Каждая строка столбца раскрывается в собственную группу ячеек.

LATERAL JOIN в SQL: последняя запись, top-N на пользователя и функции в FROM

LATERAL JOIN на реальной учебной базе: последний платёж пользователя со всеми полями, разница между LEFT и CROSS, почему подзапрос с агрегатом никогда не отбрасывает строки, три последних события на человека, индекс, без которого LATERAL читает таблицу на каждой строке, и когда хватит GROUP BY, DISTINCT ON или окна.

Читать материал
Продуктовая аналитика23 сентября 2026 г.12 мин

Процент и доля в SQL: от общего, в группе и прирост к прошлому месяцу

Как посчитать процент в SQL: доля от общего через SUM() OVER (), доля внутри группы, конверсия, прирост к прошлому месяцу через LAG, процентные пункты и округление.

Читать материал