Сборник №07. Продвинутый PostgreSQL. Оконные функции, GROUP BY, CASE, временные таблицы и отладка
Этот выпуск — полный прорыв в аналитике и разработке на PostgreSQL. Мы разбираем 5 тем, которые превращают сложные задачи в элегантные SQL-запросы. Никакой теории — только реальные примеры на таблицах товаров, категорий и интернет-магазина. 📌 Содержание сборника: ✅ 1. Оконные функции (Window Functions) Ранжирование, скользящие средние, отклонение от среднего по категории, накопительные проценты (кумулята) и даже оконные функции по двум уровням иерархии. Узнаете, чем ROW_NUMBER отличается от RANK и NTILE, и как одним запросом сделать дашборд. ✅ 2. GROUP BY на реальных данных Количество товаров по категориям, мин/макс/средняя/сумма цен, фильтрация групп через HAVING, работа с массивами тегов (unnest + array_agg) и правильное использование LEFT JOIN против INNER JOIN. От простой статистики до сложных агрегаций. ✅ 3. CASE WHEN THEN: от простой категоризации до подзапросов Категоризация товаров по цене (дешёвый / средний / дорогой / премиум), определение электроники через родительские категории, оценка популярности по количеству тегов и, самое интересное — подзапросы внутри CASE для сравнения с максимумом, минимумом и средней по всему магазину. ✅ 4. Временные таблицы и функции Как упаковать сложную логику в многоразовые конструкции. Создаём временные таблицы внутри функций, считаем аномалии цен (отклонение ﹥30% от средней), анализируем теговую совместимость товаров через две временные таблицы, добавляем индексы на temp-таблицы для производительности и строим отчёт по иерархии категорий с рекурсией. ✅ 5. Как отлаживать функции — RAISE NOTICE Самый простой и эффективный инструмент отладки. Выводим сообщения в консоль на каждом шаге: на входе в функцию, после запроса, внутри цикла. Учимся видеть, что реально происходит внутри «чёрного ящика», и находить ошибки за минуты, а не часы. 🎯 Кому пригодится: Аналитикам данных Разработчикам SQL и бэкенда Тем, кто уже знает SELECT и JOIN, но хочет перейти на следующий уровень Всем, кто готовит отчёты, дашборды и автоматизирует обработку данных 🔗 Связанные сборники канала: №3 — PostgreSQL: pgAdmin, создание БД, LEFT JOIN, EXPLAIN (база) №5 — Функции, представления, процедуры, INSERT, UPDATE, DELETE №6 — Триггеры, архивация, рекурсивные запросы, партиции, массивы 💡 Ставьте лайк, подписывайтесь на All_Office и пишите в комментариях — какая из пяти тем оказалась самой полезной для ваших задач? 👇 Сборник №7 уже на канале! Не пропустите. Telegram https://t.me/All_OffYes Канал в YouTube https://www.youtube.com/@All_OffYes Сайт https://sqlcode.ru/
Этот выпуск — полный прорыв в аналитике и разработке на PostgreSQL. Мы разбираем 5 тем, которые превращают сложные задачи в элегантные SQL-запросы. Никакой теории — только реальные примеры на таблицах товаров, категорий и интернет-магазина. 📌 Содержание сборника: ✅ 1. Оконные функции (Window Functions) Ранжирование, скользящие средние, отклонение от среднего по категории, накопительные проценты (кумулята) и даже оконные функции по двум уровням иерархии. Узнаете, чем ROW_NUMBER отличается от RANK и NTILE, и как одним запросом сделать дашборд. ✅ 2. GROUP BY на реальных данных Количество товаров по категориям, мин/макс/средняя/сумма цен, фильтрация групп через HAVING, работа с массивами тегов (unnest + array_agg) и правильное использование LEFT JOIN против INNER JOIN. От простой статистики до сложных агрегаций. ✅ 3. CASE WHEN THEN: от простой категоризации до подзапросов Категоризация товаров по цене (дешёвый / средний / дорогой / премиум), определение электроники через родительские категории, оценка популярности по количеству тегов и, самое интересное — подзапросы внутри CASE для сравнения с максимумом, минимумом и средней по всему магазину. ✅ 4. Временные таблицы и функции Как упаковать сложную логику в многоразовые конструкции. Создаём временные таблицы внутри функций, считаем аномалии цен (отклонение ﹥30% от средней), анализируем теговую совместимость товаров через две временные таблицы, добавляем индексы на temp-таблицы для производительности и строим отчёт по иерархии категорий с рекурсией. ✅ 5. Как отлаживать функции — RAISE NOTICE Самый простой и эффективный инструмент отладки. Выводим сообщения в консоль на каждом шаге: на входе в функцию, после запроса, внутри цикла. Учимся видеть, что реально происходит внутри «чёрного ящика», и находить ошибки за минуты, а не часы. 🎯 Кому пригодится: Аналитикам данных Разработчикам SQL и бэкенда Тем, кто уже знает SELECT и JOIN, но хочет перейти на следующий уровень Всем, кто готовит отчёты, дашборды и автоматизирует обработку данных 🔗 Связанные сборники канала: №3 — PostgreSQL: pgAdmin, создание БД, LEFT JOIN, EXPLAIN (база) №5 — Функции, представления, процедуры, INSERT, UPDATE, DELETE №6 — Триггеры, архивация, рекурсивные запросы, партиции, массивы 💡 Ставьте лайк, подписывайтесь на All_Office и пишите в комментариях — какая из пяти тем оказалась самой полезной для ваших задач? 👇 Сборник №7 уже на канале! Не пропустите. Telegram https://t.me/All_OffYes Канал в YouTube https://www.youtube.com/@All_OffYes Сайт https://sqlcode.ru/
