TGViewer
SQL Ready | Базы Данных SQL Ready | Базы Данных @sql_ready · 17.5K subscribers
Post #1118 1.99K
Рекурсивные CTE: создаём календарь без таблицы дат!

Когда в базе нет отдельной таблицы календаря, можно сгенерировать последовательность прямо в запросе:
WITH RECURSIVE dates AS (
SELECT CAST('2025-01-01' AS DATE) AS d
UNION ALL
SELECT d + INTERVAL '1 day'
FROM dates WHERE d < '2025-01-07'
)


Так формируется список дней от 1 до 7 января:
SELECT d
FROM dates;


Теперь календарь можно соединить с заказами, чтобы увидеть пропуски:
SELECT d, COALESCE(SUM(o.total),0) AS total
FROM dates d
LEFT JOIN orders o ON o.order_date = d.d
GROUP BY d
ORDER BY d;


🔥 Рекурсивные CTE позволяют генерировать временные ряды или числа «на лету», без вспомогательных таблиц.

➡️ SQL Ready | #практика
  • 🔥 12
  • 👍 7
  • ❤ 4
  • 👎 2
  • 🤝 2
More from @sql_ready
  1. Oct 12, 2026Обновляйте несколько колонок одним подзапросом! Вместо нескольких одинаковых подзапросов:…
  2. Oct 9, 2026❤️ sqlite-postgres-cours — большой практический курс по базам данных! Материал ведёт от пе…
  3. Oct 8, 2026Почему UNIQUE допускает несколько NULL в PostgreSQL! Ограничение UNIQUE гарантирует уникал…
  4. Oct 7, 2026📂 Шпаргалка по паттернам распределённых систем! Например, Replication повышает доступност…
  5. Oct 6, 2026Проверяйте связи с учётом периода! В PostgreSQL 18 связь может учитывать ещё и период его…
  6. Oct 6, 2026👍 Устройство PostgreSQL — подробная документация на русском языке! Материалы посвящены не…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →