В SQL нет привычных циклов, но есть полезные инструменты, которые позволяют строить повторяющиеся структуры (например, таблицу умножения 10×10).
Сегодня в посте:
• Генерируем числа от 1 до 10 с помощью GENERATE_SERIES();
• Объединяем их в пары через CROSS JOIN;
• Считаем произведения и форматируем результат в матрицу.
Такой приём не просто игра: его используют для генерации тестовых данных, создания временных сеток, расчёта комбинаций или аналитических карт.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥10❤7
В ПОГОНЕ ЗА ИНФОРМАЦИЕЙ - ТЫ МОЖЕШЬ СТАТЬ НОВОЙ ИНФОРМАЦИЕЙ🇷🇺
Список несогласных ниже:
hck wrr – расскажут, почему ты сам себя продаешь властям, если кормишь сайт печеньем.
scr snk – новостной кибер-без. Ты просто в курсе интернет-угоз и событий индустрии.
insc lrd – скачиваемый оффлайн википедик от всех кибер-тараканов.
Дальше ты сам!
Список несогласных ниже:
hck wrr – расскажут, почему ты сам себя продаешь властям, если кормишь сайт печеньем.
scr snk – новостной кибер-без. Ты просто в курсе интернет-угоз и событий индустрии.
insc lrd – скачиваемый оффлайн википедик от всех кибер-тараканов.
Дальше ты сам!
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4❤1🔥1
DELETE + RETURNING: удаление с получением результата!
При очистке данных важно понимать, какие строки были реально удалены. Оператор
Создадим таблицу:
Удалим неактивные сессии и сразу получим нужные поля:
Результат:
🔥 Такой приём повышает прозрачность операций и упрощает аудит. Работает также с
➡️ SQL Ready | #практика
При очистке данных важно понимать, какие строки были реально удалены. Оператор
RETURNING в PostgreSQL позволяет вернуть данные удалённых строк без дополнительного запроса.Создадим таблицу:
CREATE TABLE sessions (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
user_id BIGINT NOT NULL,
last_active TIMESTAMPTZ NOT NULL
);
Удалим неактивные сессии и сразу получим нужные поля:
DELETE FROM sessions
WHERE last_active < NOW() - INTERVAL '30 days'
RETURNING id, user_id;
Результат:
id | user_id
----+---------
12 | 3
18 | 7
25 | 3
🔥 Такой приём повышает прозрачность операций и упрощает аудит. Работает также с
INSERT и UPDATE, что делает SQL-операции атомарными.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤8🔥7
Временные таблицы позволяют хранить промежуточные результаты, создавать индексы, изолировать эксперименты и оптимизировать пайплайны.
Сегодня в посте:
• Как создавать и использовать временные таблицы;
• Как ускорить аналитику с помощью индексов;
• Почему TEMP TABLE лучше, чем CTE, для сложных цепочек.
Смысл временных таблиц не в удобстве, а в контроле. Сами решаете, когда считать, что кешировать и как двигать данные между шагами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍7🤝5❤1
В этой шпаргалке — функции PostGIS для пространственного анализа: вычисление расстояний и площадей, определение пересечений и вложенности геометрий, создание буферов и экспорт в GeoJSON. Эти инструменты полноценной ГИС-платформой для хранения, обработки и анализа геоданных.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥8❤6
Covering Index — как реально ускорить SELECT!
Даже с индексом СУБД может работать медленно — после поиска всё равно нужно обращаться к таблице за данными.
Если запрос обращается только к колонкам, включённым в индекс — таблица может не читаться вовсе:
Теперь запрос:
Выполняется полностью из индекса — минимум I/O, максимум скорости.
В PostgreSQL это видно как
Работает только если строки помечены
🔥 Не забывайте: больше индексов = больше места и медленнее вставки/обновления.
➡️ SQL Ready | #совет
Даже с индексом СУБД может работать медленно — после поиска всё равно нужно обращаться к таблице за данными.
Covering Index — это индекс, который уже содержит все данные, нужные запросу.Если запрос обращается только к колонкам, включённым в индекс — таблица может не читаться вовсе:
CREATE INDEX idx_orders_status_user
ON orders (status, user_id);
Теперь запрос:
SELECT user_id, status
FROM orders
WHERE status = 'pending';
Выполняется полностью из индекса — минимум I/O, максимум скорости.
В PostgreSQL это видно как
Index Only Scan в плане:EXPLAIN ANALYZE SELECT ...
Работает только если строки помечены
all-visible (visibility map). В MySQL аналог — Using index, в SQL Server — INCLUDE в индексе. 🔥 Не забывайте: больше индексов = больше места и медленнее вставки/обновления.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍9🤝7🔥3
Когда: 25–28 ноября
Формат: онлайн + финал на площадке
Участвуй, если ты:
Выбери свой кейс:
✴️ VibeCode Jam: собеседование будущего. Создай ИИ-платформу для прохождения технических собеседований с виртуальным интервьюером.✴️ Self-Deploy: CI/CD без DevOps. Автоматизируй генерацию CI/CD пайплайнов по анализу структуры Git-репозитория.
Почему стоит участвовать:
Регистрация открыта!
Реклама. ООО "ГК "Иннотех" ИНН 9703073496 ERID 2VtzqxXvjVG
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1🔥1