Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc
Post #1125
1.85K

- ❤ 15
- 👍 12
- 🔥 5
- 😁 2
SQ @sql_ready
Showing posts older than #1127 · Back to latest






• Определим пересечения друзей между разными пользователями;
• Посчитаем количество общих связей для каждой пары;
• Построим топ-10 пар с наибольшим числом взаимных друзей.
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'
)
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 позволяют генерировать временные ряды или числа «на лету», без вспомогательных таблиц.




• Получаем предыдущую версию документа с LAG();
• Считаем разницу по длине текста, чтобы видеть масштаб изменений;
• Фильтруем только существенные правки для фокусировки на важных правках.





В этой шпаргалке — ключевые команды для создания, изменения и удаления представлений, а также работа с материализованными view и контролем данных. Подойдёт для случаев, когда важно оптимизировать сложные запросы и упростить доступ к данным.NULL при сортировке? Например в PostgreSQL при ORDER BY ... DESC NULL окажутся в началеSELECT name, salary
FROM employees
ORDER BY salary DESC;
NULL (Postgres / Oracle / SQLite). Так NULL всегда внизу и не попадут в топ зарплат:SELECT name, salary
FROM employees
ORDER BY salary DESC NULLS LAST
LIMIT 10;
ORDER BY hire_date ASC NULLS FIRST;
NULLS FIRST / NULLS LAST не поддерживают — используйте обход:-- MySQL
ORDER BY (salary IS NULL), salary DESC;
-- SQL Server
ORDER BY CASE WHEN salary IS NULL THEN 1 ELSE 0 END, salary DESC;
NULLS FIRST/LAST делает сортировку предсказуемой и удобной.