long → wide через SUM(CASE) или SUM(...) FILTER (Postgres). wide → long через UNION ALL или LATERAL VALUES. Динамические колонки — crosstab (Postgres extension) или dynamic SQL. Условная агрегация COUNT(*) FILTER — самый частый паттерн дашборда.
5 паттернов которые спрашивают на middle/senior: gaps-and-islands (стрики), Top-N per group (4 способа), recursive CTE (иерархии и calendar), pivot/unpivot без расширений, anti-fraud правила.
Ключевые темы: gaps-and-islands, top-n, recursive, pivot, unpivot, fraud, rolling, z-score.
В Pro-подписке по этому конспекту получите: