SQL Ready | Базы Данных
Авторский канал про Базы Данных и SQL Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Cотрудничество: @energy_c РКН: https://clck.ru/3QREBc
Ko'proq ko'rsatish📈 Telegram kanali SQL Ready | Базы Данных analitikasi
SQL Ready | Базы Данных (@sql_ready) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 17 766 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 318-o'rinni va Rossiya mintaqasida 37 051-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 17 766 obunachiga ega bo‘ldi.
20 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 730 ga, so‘nggi 24 soatda esa 24 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 11.55% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.98% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 2 052 marta ko‘riladi; birinchi sutkada odatda 1 062 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 23 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent sql, строка, users, индекс, user_id kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 21 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
• 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 | #практика