SQL Ready | Базы Данных
Авторский канал про Базы Данных и SQL Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Автор: @energy_it РКН: https://clck.ru/3QREBc Реклама на бирже: https://telega.in/c/sql_ready
Show more📈 Analytical overview of Telegram channel SQL Ready | Базы Данных
Channel SQL Ready | Базы Данных (@sql_ready) in the Russian language segment is an active participant. Currently, the community unites 15 552 subscribers, ranking 8 396 in the Technologies & Applications category and 43 154 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 15 552 subscribers.
According to the latest data from 11 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 56 over the last 30 days and by -9 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 12.41%. Within the first 24 hours after publication, content typically collects 6.30% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 931 views. Within the first day, a publication typically gains 980 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 24.
- Thematic interests: Content is focused on key topics such as sql, строка, user_id, created_at, desc.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREBc
Реклама на бирже: https://telega.in/c/sql_ready”
Thanks to the high frequency of updates (latest data received on 12 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
• Определим моменты, когда начинается новая сессия; • Присвоим каждому событию уникальный session_id с помощью оконной суммы; • Получим полноценные сессии так же, как это делают продуктовые аналитические платформы.Пригодится для расчёта удержания, построения пользовательских путей, анализа фич и диагностики проблем поведения. ➡️ SQL Ready | #задача
• Разберёте реальные ошибки при развёртывании СУБД;
• Узнаете, как повысить производительность запросов через правильное партицирование и не только;
• Поймёте, как организовать конкурентный доступ и обновления данных без блокировок и простоев;
• Получите шесть конкретных лайфхаков, которые помогут избежать критических проблем.
🔊 Продолжайте читать на Habr!➡️ SQL Ready | #статья
regexp_match и regexp_replace, позволяющие делать это напрямую в SQL.
Создадим таблицу:
CREATE TABLE users (
id INT,
email TEXT,
profile_code TEXT
);
Извлечём домен из email:
SELECT
id,
email,
(regexp_match(email, '@(.+)$'))[1] AS domain
FROM users;
regexp_match возвращает один массив, и [1] достаёт первую группу. Паттерн @(.+)$ берёт всё, что стоит после символа @.
Вытащим числовую часть из кода профиля, например "USR-2391-A":
SELECT
id,
profile_code,
(regexp_match(profile_code, '([0-9]+)'))[1] AS numeric_part
FROM users;
Паттерн ([0-9]+) извлекает последовательность цифр.
Удалим всё кроме букв и цифр — удобно для нормализации входных данных:
SELECT
id,
regexp_replace(profile_code, '[^A-Za-z0-9]', '', 'g') AS cleaned
FROM users;
🔥 Такие операции часто используются при подготовке данных, парсинге логов, анализе текстовых полей и нормализации входных атрибутов.
➡️ SQL Ready | #практикаPostgreSQL не знает, насколько селективное значение в колонке.
Обновить статистику можно точечно, для одной конкретной колонки:
ANALYZE users (status);
Теперь оптимизатор видит реальное распределение значений и может корректно выбрать Index Scan.
Хотите повысить точность — увеличьте глубину сбора статистики:
ALTER TABLE users
ALTER COLUMN status SET STATISTICS 500;
🔥 Позволяет понять почему план деградирует и как вернуть индекс в работу, без изменения кода и структуры данных.
➡️ SQL Ready | #совет📌 Инструменты, гайды, шпаргалки практические гайды.
SELECT с результатами второго SELECT из подзапроса, что может быть удобно в некоторых случаях: если подзапрос возвращает небольшое количество строк или когда нужно сравнить значение хотя бы с одним значением из подзапроса.
Представим, что нам нужно найти все продукты, цена которых выше, чем цена любого продукта в категории Discount:
SELECT product, price
FROM products
WHERE price > ALL (SELECT price FROM products WHERE category = 'Discount');
Теперь найдем всех клиентов, заказавших хотя бы один продукт с ценой выше 1000 рублей:
SELECT DISTINCT customer_id
FROM orders
WHERE product_id = ANY (SELECT product_id FROM products WHERE price > 1000);
И найдем всех клиентов, которые заказывали продукты из определенной категории:
SELECT DISTINCT customer_id
FROM orders
WHERE product_id = ANY (SELECT product_id FROM products WHERE category = 'Electronics');
🔥 Но помните, что использование ALL и ANY возможно только с подзапросами и может быть неэффективным, если подзапрос возвращает большое количество строк.
➡️ SQL Ready | #практикаUX определяется не средним временем ответа, а редкими хвостовыми задержками, из-за которых важны именно p95 и p99.
Сегодня в задаче:
• Посчитаем ключевые перцентильные метрики (p50/p95/p99) по каждому маршруту; • Определим, какие запросы регулярно превышают собственный p99; • Увидим, какие эндпоинты “убивают” отклик сервиса под нагрузкой;Такой анализ помогает быстро находить узкие места
API и контролировать качество работы системы.
➡️ SQL Ready | #задачаRETURNING позволяет вернуть значения вставленных, обновлённых или удалённых строк без дополнительного SELECT.
Вставляем строку и сразу получаем созданный ID:
INSERT INTO users (name, email)
VALUES ('Anna Ivanova', 'anna@example.com')
RETURNING id;
Обновляем запись и возвращаем изменённое значение:
UPDATE accounts
SET balance = balance + 500
WHERE id = 10
RETURNING balance AS new_balance;
Удаляем строку и получаем данные до удаления:
DELETE FROM orders
WHERE id = 42
RETURNING order_date, amount;
Возвращаем множество строк:
UPDATE products
SET price = price * 1.10
WHERE category = 'Books'
RETURNING id, price;
🔥 RETURNING упрощает логику: нет необходимости выполнять дополнительный запрос, чтобы получить новые данные — они доступны сразу в рамках одного DML.
➡️ SQL Ready | #практикаЭта шпаргалка охватывает наиболее используемые функции PostgreSQL для получения текущего времени, извлечения компонентов дат, расчета интервалов, округления временных меток и преобразования Unix-времени. Подходит для разработки систем, где критична точная и предсказуемая работа с временными значениями.
➡️ SQL Ready | #шпораQUALIFY, позволяющая делать это напрямую.
Отбираем строки только с первым местом внутри категории:
SELECT id, category, score,
RANK() OVER (
PARTITION BY category
ORDER BY score DESC
) AS rnk
FROM results
QUALIFY rnk = 1;
Фильтруем строки, где разница с предыдущим значением больше 50:
SELECT id, value,
value - LAG(value) OVER (
ORDER BY id
) AS diff_prev
FROM metrics
QUALIFY diff_prev > 50;
Оставляем топ-3 самых больших заказов каждого клиента:
SELECT customer_id, order_id, amount,
ROW_NUMBER() OVER (
PARTITION BY customer_id
ORDER BY amount DESC
) AS rn
FROM orders
QUALIFY rn <= 3;
🔥 QUALIFY помогает писать чище и короче, избавляя от лишних подзапросов. Особенно полезен в аналитических задачах с большим числом оконных функций.
➡️ SQL Ready | #практика
Available now! Telegram Research 2025 — the year's key insights 
