В этой шпаргалке — ключевые конструкции для построения деревьев и цепочек подчинённости в SQL: рекурсивные запросы, самосоединения и фильтрация уровней. Эти приёмы применяются при моделировании категорий, организационных структур и древовидных меню без сторонних средств.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤4👍4
COALESCE — заполняем пропуски в запросе!
Заменим отсутствующие телефоны на понятный текст:
В реальных проектах — незаменимо для расчётов:
При объединении источников можно задать приоритет данных:
Для аналитики — способ исключить искажения при агрегации:
🔥
➡️ SQL Ready | #практика
NULL часто ломают отчёты и расчёты: сумма, среднее, сортировка — всё сбивается. COALESCE() подставляет первое непустое значение и спасает от ошибок.Заменим отсутствующие телефоны на понятный текст:
SELECT name, COALESCE(phone, 'не указано') AS phone
FROM customers;
В реальных проектах — незаменимо для расчётов:
SELECT id, total,
total - (total * COALESCE(discount, 0) / 100) AS total_after_discount
FROM orders;
При объединении источников можно задать приоритет данных:
SELECT user_id,
COALESCE(main.email, backup.email, 'unknown@example.com') AS email
FROM main_users AS main
LEFT JOIN backup_users AS backup USING (user_id);
Для аналитики — способ исключить искажения при агрегации:
SELECT region, SUM(COALESCE(sales, 0)) AS total_sales
FROM branches
GROUP BY region;
🔥
COALESCE делает запросы надёжнее, отчёты точнее, а код — чище и короче.Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤8🔥7
SQL умеет сам генерировать даты, числа и интервалы. Можно строить отчёты, искать пропуски и анализировать активность без сторонних таблиц.
В этом посте:
• Генерируем последовательность дат и временных меток;
• Находим “пустые” дни без заказов;
• Формируем ежедневный отчёт по активности.
Функция, которая превращает SQL в крутой аналитический инструмент.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥8❤5🤝3
Скользящее среднее: сглаживаем колебания заказов!
Оконные функции позволяют видеть тренд заказов без резких скачков.Посчитаем среднее количество заказов за последние 3 дня.
Считаем количество заказов по датам:
Формируем временную таблицу для расчётов:
Вычисляем среднее за 3 дня:
Добавляем исходное значение для сравнения:
🔥 Получаем сглаженную динамику заказов по датам — идеальный инструмент для анализа активности.
➡️ SQL Ready | #практика
Оконные функции позволяют видеть тренд заказов без резких скачков.Посчитаем среднее количество заказов за последние 3 дня.
Считаем количество заказов по датам:
SELECT order_date,
COUNT(*) AS orders
FROM orders
GROUP BY order_date;
Формируем временную таблицу для расчётов:
WITH daily AS (
SELECT order_date,
COUNT(*) AS orders
FROM orders
GROUP BY order_date
)
Вычисляем среднее за 3 дня:
SELECT order_date,
AVG(orders) OVER (
ORDER BY order_date
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
) AS avg_3days
FROM daily;
Добавляем исходное значение для сравнения:
SELECT order_date,
orders,
ROUND(AVG(orders) OVER (
ORDER BY order_date
ROWS 2 PRECEDING
), 2) AS avg_3days
FROM daily;
🔥 Получаем сглаженную динамику заказов по датам — идеальный инструмент для анализа активности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤9🔥7🤝2
Иногда счета зависают надолго - дольше 180 дней. Такие долги уже маловероятно вернуть, и важно понимать их масштаб, чтобы вовремя принять меры.
В задаче:
• Найдём счета с просрочкой свыше 180 дней;
• Посчитаем их сумму и долю от всех долгов;
• Определим, какая часть уже относится к «невозвратным» (closed, bankrupt).
В результате получаем инструмент для финансового контроля и резервирования: видно, где деньги уже «застыли» и какие долги требуют списания.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥9👍7
❤16👍8🔥7👎3
В этой шпаргалке — основные методы работы с временными структурами данных: создание и очистка временных таблиц, управление содержимым транзакций, использование CTE и параметров ON COMMIT. Эти приёмы применяются при оптимизации сложных запросов, промежуточных расчётах и обработке данных в сессиях или ETL-процессах.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6🤝5