SQL Ready | Базы Данных
Авторский канал про Базы Данных и SQL Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Cотрудничество: @energy_c РКН: https://clck.ru/3QREBc
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام SQL Ready | Базы Данных
تُعد قناة SQL Ready | Базы Данных (@sql_ready) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 17 766 مشتركاً، محتلاً المرتبة 7 318 في فئة التكنولوجيات والتطبيقات والمرتبة 37 051 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 17 766 مشتركاً.
بحسب آخر البيانات بتاريخ 20 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 730، وفي آخر 24 ساعة بمقدار 24، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 11.55%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 5.98% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 052 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 062 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 23.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل sql, строка, users, индекс, user_id.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 21 أكتوبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
• 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 | #практика