SQL Ready | Базы Данных
Авторский канал про Базы Данных и SQL Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Cотрудничество: @energy_c РКН: https://clck.ru/3QREBc
Mostrar más📈 Análisis del canal de Telegram SQL Ready | Базы Данных
El canal SQL Ready | Базы Данных (@sql_ready) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 17 766 suscriptores, ocupando la posición 7 318 en la categoría Tecnologías y Aplicaciones y el puesto 37 051 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 17 766 suscriptores.
Según los últimos datos del 20 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de 730, y en las últimas 24 horas de 24, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 11.55%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 5.98% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 2 052 visualizaciones. En el primer día suele acumular 1 062 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 23.
- Intereses temáticos: El contenido se centra en temas clave como sql, строка, users, индекс, user_id.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 21 octubre, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
• LATERAL делает подзапросы внутри JOIN «осведомлёнными» о текущей строке. • Удобно, когда нужно посчитать агрегаты или достать top-N из связанных таблиц. • Отлично работает с jsonb, позволяя обойтись без оконных функций.Инструмент, с которым сложные запросы станут в разы проще. ➡ SQL Ready | #гайд
• Распределяем счета по корзинам: 0-30, 31-60, 61-90, 90+ дней просрочки. • Считаем сумму, количество и долю задолженности по каждой корзине. • Строим топ-5 крупнейших должников с просрочкой более 60 дней.Такой отчёт позволяет увидеть, где «зависли» деньги, и помогает сфокусироваться на проблемных клиентах ➡ SQL Ready | #задача
Позволяет понять, какие запросы и функции съедают ресурсы, где тормозит система и как это исправить. Отличный инструмент для ускорения и оптимизации работы с данными.
➡️ SQL Ready | #шпораON CONFLICT DO NOTHING. Он просто пропустит строки, которые уже есть.
Допустим, у нас есть таблица с пользователями, где email должен быть уникальным:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email TEXT UNIQUE
);
Попробуем вставить сразу несколько строк, включая дубликат:
INSERT INTO users (email)
VALUES ('alice@example.com'),
('bob@example.com'),
('alice@example.com'); -- дубликат!
Результат будет неудачным — Postgres выдаст ошибку и отменит всю операцию. Однако с ON CONFLICT всё работает иначе:
INSERT INTO users (email)
VALUES ('alice@example.com'),
('bob@example.com'),
('alice@example.com')
ON CONFLICT DO NOTHING;
🔥 Теперь база данных вставит только уникальные строки, а повторяющиеся — просто пропустит без лишнего шума.
➡️ SQL Ready | #практика• CTE — разбиваем сложный запрос с дабл джоинами на несколько простых. • WHERE — для фильтрации активный фотосессий нужного фотографа и активных фотографий. • JOIN — для связи фотографий и фотосессий.🔥 — если узнал что-то новое 🤝 — если знал решение ➡ SQL Ready | #задача
• Считаем общее количество заказов и отдельно — отменённые (status = 'canceled'). • Используем CTE для упрощения структуры запроса и фильтрацию по последним 90 дням. • Группируем по неделям с помощью DATE_TRUNC, чтобы отследить тренды.Если процент отмен выше 7 % — это сигнал для бизнеса: стоит проверить, не возникают ли сбои в доставке, оплате или интерфейсе. ➡ SQL Ready | #задача
CREATE TABLE sales (
sale_date DATE,
amount NUMERIC
) PARTITION BY RANGE (sale_date);
Теперь создадим конкретные партиции — каждая отвечает за свой месяц:
CREATE TABLE sales_2024_01 PARTITION OF sales
FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');
CREATE TABLE sales_2024_02 PARTITION OF sales
FOR VALUES FROM ('2024-02-01') TO ('2024-03-01');
Представим, что нам нужно посчитать сумму продаж только за январь 2024 года:
SELECT SUM(amount)
FROM sales
WHERE sale_date BETWEEN '2024-01-01' AND '2024-01-31';
Добавим EXPLAIN ANALYZE, чтобы увидеть, как именно Postgres выполняет запрос:
EXPLAIN ANALYZE
SELECT SUM(amount)
FROM sales
WHERE sale_date BETWEEN '2024-01-01' AND '2024-01-31';
🔥 Важно: pruning работает только, если условие по дате написано явно — без функций, кастов и переменных.
➡️ SQL Ready | #практика• Пошаговая сборка MariaDB из исходников и первые «твики» результатов
• Реализация минимального движка MEMEM с поддержкой CREATE/INSERT/SELECT
• Отличие API движков хранения MariaDB от Postgres
🔊 Подробное руководство лежит на Habr!➡️ SQL Ready | #статья
Они защищают таблицы от мусора, дублирования и логических ошибок. Используй ограничения, чтобы база вела себя предсказуемо и честно.
➡️ SQL Ready | #шпора• Используется с ORDER BY — сначала поле из DISTINCT ON, затем сортировка внутри групп. • Без ORDER BY результат непредсказуем — зависит от физического порядка строк. • Альтернатива ROW_NUMBER() — тот же результат, но без подзапросов и лишнего кода.DISTINCT ON — мощный инструмент в арсенале PostgreSQL, когда важна лаконичность и производительность. ➡ SQL Ready | #гайд
В SQL есть всё, чтобы удобно перемещать данные: копирование между таблицами, работа с CSV, подключение внешних баз и даже умные обновления через UPSERT. Быстро, гибко, по делу.
➡️ SQL Ready | #шпораJOIN таблицы самой с собой. Но это сложно, медленно и плохо масштабируется при работе с большими таблицами.
Вместо этого используем оконную функцию LAG() — она возвращает значение из предыдущей строки:
SELECT
date,
price AS today,
LAG(price) OVER (
PARTITION BY product_id
ORDER BY date
) AS yesterday
FROM prices
WHERE product_id = 42;
Один проход по таблице, без соединений. План часто использует Index Only Scan, особенно при хороших индексах. Это делает запросы заметно быстрее и эффективнее.
Нужен топ-3 товаров по продажам в каждой категории? Используем ROW_NUMBER():
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY category
ORDER BY sales DESC
) AS rn
FROM products
) AS ranked
WHERE rn <= 3;
🔥 Не забывайте ORDER BY внутри окна — он определяет порядок, по которому сравниваются строки. Без него результаты могут быть непредсказуемыми.
➡️ SQL Ready | #практика