Data Science. SQL hub
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo #VRHSZ
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Data Science. SQL hub
تُعد قناة Data Science. SQL hub (@sqlhub) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 36 120 مشتركاً، محتلاً المرتبة 3 724 في فئة التكنولوجيات والتطبيقات والمرتبة 17 623 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 36 120 مشتركاً.
بحسب آخر البيانات بتاريخ 28 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 181، وفي آخر 24 ساعة بمقدار -16، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 8.40%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 3.77% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 3 033 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 360 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 9.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل sql, индекс, postgres, index, sqlite.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“По всем вопросам- @workakkk
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
РКН: https://vk.cc/cIi9vo
#VRHSZ”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 29 أكتوبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
--use_llm становится ещё лучше.
- Можно запускать локально, на серверах, GPU / CPU, использовать параллельную обработку.
Ограничения и нюансы:
- Сложные макеты и вложенные таблицы / формы ещё не всегда обрабатываются идеально.
- Иногда требуется OCR, особенно если PDF плохо “разложен” на текст.
Кому полезно:
- Тем, кто работает с научными статьями, отчётами, бухгалтерскими документами, презентациями и хочет автоматизировать преобразование в читаемый формат.
- Для RAG-pipelines, документации и любых задач, где надо извлечь структуру и контент.
https://github.com/datalab-to/marker
WITH ranked AS (
SELECT
user_id,
order_id,
order_date,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date DESC) AS rn
FROM orders
)
SELECT user_id, order_id, order_date
FROM ranked
WHERE rn = 1;
📌 Как это работает:
PARTITION BY user_id делит данные по пользователям
ORDER BY order_date DESC сортирует заказы от нового к старому
ROW_NUMBER() присваивает каждой записи номер в рамках группы
WHERE rn = 1 берёт только последний заказ для каждого пользователя
💡 Такой подход легко адаптируется: можно выбирать первый/последний элемент в группе, топ-N значений или фильтровать дубликаты.
@sqlhub
WITH ranked AS (
SELECT
user_id,
order_id,
order_date,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date DESC) AS rn
FROM orders
)
SELECT user_id, order_id, order_date
FROM ranked
WHERE rn = 1;
📌 Как это работает:
PARTITION BY user_id делит данные по пользователям
ORDER BY order_date DESC сортирует заказы от нового к старому
ROW_NUMBER() присваивает каждой записи номер в рамках группы
WHERE rn = 1 берёт только последний заказ для каждого пользователя
💡 Такой подход легко адаптируется: можно выбирать первый/последний элемент в группе, топ-N значений или фильтровать дубликаты.
@sqlhubCOUNT(DISTINCT ...).
SELECT
customer_id,
COUNT(DISTINCT product_id) AS unique_products
FROM orders
GROUP BY customer_id;
🔎 Такой запрос покажет, сколько разных товаров купил каждый клиент.
Работает не только с COUNT(), но и с SUM(DISTINCT ...) или AVG(DISTINCT ...).
@sqlhub
-- Возьмём по 1 строке на группу (g1, g2), выбирая «лучшую» по metric DESC
SELECT DISTINCT ON (g1, g2) *
FROM some_table
ORDER BY g1, g2, metric DESC;
-- Пример: последний заказ каждого пользователя
SELECT DISTINCT ON (o.user_id)
o.user_id, o.id AS order_id, o.created_at, o.total
FROM orders o
ORDER BY o.user_id, o.created_at DESC;
-- Рекомендуемый индекс для скорости (соответствует ORDER BY)
CREATE INDEX ON orders (user_id, created_at DESC);
-- Ещё пример: самая дорогая товарная позиция в категории
SELECT DISTINCT ON (p.category_id)
p.category_id, p.id, p.price
FROM products p
ORDER BY p.category_id, p.price DESC;
-- Индекс под этот запрос
CREATE INDEX ON products (category_id, price DESC);
@sqlhub
name = "Alice'; DROP TABLE accounts; --"
query = f"SELECT * FROM accounts WHERE name = '{name}'"
conn.sql(query)
💥 И вот таблица accounts удалена!
Почему так?
Потому что строка с именем вставляется как есть и воспринимается как часть SQL-запроса.
✅ Правильный способ — использовать параметры:
name = "Alice'; DROP TABLE accounts; --"
query = "SELECT * FROM accounts WHERE name = ?"
conn.sql(query, params=(name,))
✔ Имя ищется как текст, база остаётся в безопасности.
👉 Запомни: никогда не вставляй пользовательские данные напрямую в SQL.
Используй параметризованные запросы — это надёжная защита от SQL-инъекций.
@sqlhub