Data Science. SQL hub
35.9K subscribers
955 photos
52 videos
37 files
1K links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
📊 1 000 000 рублей и преимущества при поступлении в магистратуры ФКН ВШЭ — это главные призы олимпиады AIDAO

Командную олимпиаду по ИИ и анализу данных проводят ФКН НИУ ВШЭ и Яндекс Образование. Будет два этапа: онлайн и офлайн-финал в Москве. Для участия нужно собрать команду студентов зарегистрироваться на сайте.

💡 Оба этапа будут на английском языке.
💡 Во время олимпиады будут вебинары с экспертами и сотрудниками научных лабораторий, где вы сможете задать любой вопрос по заданиям.

Проявить себя, получить опыт и побороться за призы можно по ссылке.
3
🟡🔵 Разбираемся с SQL JOIN и фильтрами в OUTER JOIN

Одна из самых частых ошибок при работе с SQL - путаница между условием в ON и фильтром в WHERE. На картинке это отлично показано.

Когда мы пишем LEFT OUTER JOIN, мы ожидаем, что слева попадут все строки. Но результат зависит от того, где именно мы накладываем фильтры.

Пример:

У нас есть две таблицы:
- Левая: фигура + число
- Правая: число + фигура

Мы делаем LEFT OUTER JOIN.

1. Фильтр в ON
Если написать ON right_table.number = 1, то соединение будет проверять условие именно во время джойна. Это значит: строки слева сохранятся, даже если справа нет совпадений — просто будут NULL.

2. Фильтр в WHERE
Если написать WHERE left_table.number = 1, то фильтрация произойдёт уже после объединения. В этом случае строки, не прошедшие условие, полностью исчезнут из результата.

Почему это нужно знать?

- ON управляет логикой соединения.
- WHERE убирает строки после соединения.
- В OUTER JOIN это принципиальная разница: при фильтре в ON мы сохраним «пустые» строки, при фильтре в WHERE они будут удалены.


📌 Вывод:
- Если нужно оставить все строки из левой таблицы и лишь добавить совпадения справа - фильтр ставим в ON.
- Если хотим действительно отобрать только подходящие строки — фильтр в WHERE.

Именно поэтому в сложных запросах всегда спрашивай себя: фильтр — это часть логики соединения или это окончательное ограничение?

#SQL #joins #databases
9👍9🔥5
The Experts: School of Analytics продлевает дедлайн подачи заявок на годовую программу по треку Top Talents!

Кто такие The Experts?
Это сообщество подтверждённых профессионалов в сферах финансов, аналитики и консалтинга. Мы делаем ставку на прикладное образование и запускаем программы, которые помогают начать карьеру и развиваться в выбранной индустрии.
School of Analytics - одна из образовательных вертикалей проекта The Experts.

👉 О годовой программе
Программа сочетает:
- Удобный формат: онлайн-лекции и воркшопы, обучение легко совмещать с вузом или работой;
- Менторство и карьерную поддержку: выпускники School of Analytics востребованы на рынке;
- Сообщество профессионалов: нетворкинг со спикерами и выпускниками, мастер-классы с представителями компаний-партнёров (Яндекс, OZON, VK, Т-Банк и др.).
- Вас ждут еженедельные лекции и практические занятия от дата- и бизнес-аналитиков.

Темы курса:
- SQL и управление базами данных,
- визуализация в PowerBI и DataLens,
- проведение А/В тестирований и проверка гипотез,
- юнит-экономика и работа с метриками,
- моделирование данных в Python и многое другое.

📎 Что даёт трек Top Talents?
До 94% покрытия стоимости обучения при успешном прохождении всех этапов отбора:
- онлайн-тестирование;
- решение кейса;
- интервью в Zoom.

Кто может подать заявку?
- студенты российских и зарубежных вузов (бакалавриат, специалитет, магистратура), получающие первое высшее образование;
- выпускники этих программ 2025 года.

👉 Подробности и регистрация
У вас есть все шансы пройти на программу, не упустите возможность!

Также открыт набор на трек EXPERT — это полный доступ ко всем возможностям программы и дополнительные преимущества. Подать заявку может любой желающий!
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 SQL: использование оконных функций для накопительных сумм

Хотите посчитать «бегущую сумму» или ранжирование без подзапросов?
Используйте WINDOW FUNCTIONS — они считаются построчно, не сворачивая данные.


SELECT
customer_id,
order_date,
amount,
SUM(amount) OVER (
PARTITION BY customer_id
ORDER BY order_date
) AS running_total
FROM orders;


🔎 Здесь для каждого клиента мы получаем накопительную сумму по мере добавления заказов.
Оконные функции позволяют легко строить кумулятивные метрики, рейтинги и скользящие средние прямо в одном запросе.

@sqlhub
👍134🔥2
Год назад здесь была реклама нового, но уже довольно любопытного курса по API. За год его автор, тимлид команды аналитиков Глеб Учитель, проделал огромную работу: на курс записалось более 1300 человек. И сейчас его знают многие.

Если вы тоже хотите расти по хардам в IT —
добро пожаловать!

🔹🔹 🔹🔹
Начните с бесплатных уроков по архитектуре и интеграциям в чат-боте курса. Переходите и знакомьтесь.
👇
@studyit_help_bot

Скидка на курс от канала —
1 000₽ по промокоду SQLHUB до 30 сентября.
1
📈 Гайд по продвинутым вопросам для разработчика LLM

Собеседования на позицию разработчика больших языковых моделей (LLM) в топовых AI-компаниях предъявляют высокие требования к знаниям.

Кандидату необходимо понимать устройство архитектуры трансформеров, владеть методами эффективного обучения и инференса, разбираться в оптимизациях памяти и скорости (таких как LoRA, FlashAttention, vLLM, ZeRO), знать тонкости распределённого тренинга, принципов LLMOps (MLOps для больших моделей) и нюансов продакшн-развертывания LLM.

Также часто проверяют умение решать реальные задачи: от проектирования пайплайна для Sparse MoE до анализа проблем с памятью на GPU, понимания различий между методами обучения с подкреплением (RLHF vs DPO) и способов масштабирования моделей.

Этот гайд структурирован по ключевым темам, соответствующим областям знаний, которые обычно проверяются на собеседованиях. Для каждой темы мы рассмотрим, что пытаются проверить интервьюеры, приведём пример формулировки вопроса и дадим подробный разбор ответа с обсуждением трэйд-оффов, примеров кода или схем, где это уместно. Вы можете изучать материал по разделам, чтобы сфокусироваться на интересующей области.

👉 Гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍1🔥1
Не пропустите! 24 сентября в 20:00 пройдет бесплатный урок “Маленькие хитрости GROUP BY” от онлайн-курса “PostgreSQL для администраторов баз данных и разработчиков”. 

Группировка строк с использованием GROUP BY - один из самых мощных инструментов в арсенале аналитиков и разработчиков. Узнайте теоретические основы и практические возможности этого инструмента на открытом уроке.

Что вас ждет на вебинаре:
- Вспомним, как устроен GROUP BY, и рассмотрим его на наглядных примерах
- Оптимизируем работу группировки в связке с индексами
- Разберемся с особенностями группировки строк в PostgreSQL
- Изучим несколько полезных приемов для работы с GROUP BY

Что будет на уроке:
- Разберём логику работы GROUP BY и типичные ошибки, которые тормозят запросы
- Оптимизация группировки с помощью индексов — когда она действительно работает
- Специфика GROUP BY в PostgreSQL: что можно, а что лучше не делать
- Несколько приёмов, которые ускорят и упростят обработку больших наборов данных

Результат участия:
- Поймёте, как извлекать максимум из GROUP BY в PostgreSQL
- Сможете оптимизировать работу запросов с большими объёмами данных
- Получите набор трюков, которые можно применять прямо в продакшене

Успейте записаться на урок: https://otus.pw/uQQf/?erid=2W5zFK131ig

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
5😁1
💡 SQL: быстрое нахождение первых или последних записей с DISTINCT ON !!!

В PostgreSQL есть полезный приём — DISTINCT ON, который позволяет взять первую строку в каждой группе по определённому полю.


SELECT DISTINCT ON (customer_id)
customer_id,
order_date,
amount
FROM orders
ORDER BY customer_id, order_date DESC;


🔎 Этот запрос вернёт последний заказ каждого клиента без лишних подзапросов или JOIN.

Работает очень быстро и удобно, если нужно найти «самый первый» или «самый последний» элемент в группе.

@sqlhub
🔥258👍6🥰1
🗄️ Неочевидный SQL-совет

Иногда нужно выбрать строки с первыми или последними значениями внутри группы — например, последний заказ каждого клиента.
Вместо вложенных подзапросов используйте DISTINCT ON (PostgreSQL):


SELECT DISTINCT ON (customer_id)
customer_id, order_id, created_at
FROM orders
ORDER BY customer_id, created_at DESC;


👉 Результат: по каждому customer_id вернётся только одна строка — с самым свежим заказом.
Очень компактная и быстрая альтернатива оконным функциям или JOIN-ам.
23👍3🔥2
🔥 Ваши данные стоят слишком дорого, чтобы ими рисковать

Positive Technologies 8 октября запустит новый продукт — PT Data Security. Он создан, чтобы вовремя выявлять угрозы и предотвращать утечки, пока они не привели к кризису.

На онлайн-трансляции вы первыми узнаете:

— Какие задачи и риски сегодня определяют настоящее и будущее рынка защиты данных.
— Какие вызовы стоят перед компаниями на рынке защиты данных.
— Почему Positive Technologies выходит на рынок защиты данных с новым подходом.

🕒 15:00 мск
📍 Онлайн
👉 Регистрация
💡Неочевидный SQL-совет

Часто нужно выбрать топ-N строк внутри каждой группы — например, два самых дорогих товара в категории.
Вместо сложных оконных функций можно использовать QUALIFY (в Snowflake, BigQuery, DuckDB, Trino):


SELECT category_id, product_id, price
FROM products
QUALIFY ROW_NUMBER() OVER (PARTITION BY category_id ORDER BY price DESC) <= 2;

👉 Результат: по каждой категории вернутся только два товара с наибольшей ценой.

Этот приём делает запрос короче и понятнее, убирая необходимость во вложенных подзапросах. Если вы используете СУБД с поддержкой QUALIFY, берите на вооружение.
👍12🤔21
🚀 SQL Ultimate Course — бесплатный полный курс по SQL на GitHub

Если хочешь освоить SQL с нуля и дойти до продвинутого уровня — бери готовый репозиторий:

📂 Что внутри:
- datasets/ — реальные данные из ERP и CRM
- scripts/ — готовые SQL-скрипты для практики
- docs/ — документация и материалы курса

MIT-лицензия — можно использовать и менять свободно
🌍 Подходит для всех СУБД (PostgreSQL, MySQL и др.)
🎥 К курсу прилагаются видео и гайды от автора

Автор: Data With Baraa — практик и ютубер, собравший в одном месте полный SQL-путь от простого SELECT до оптимизации запросов и реальных кейсов.

🔗 Репозиторий здесь: https://github.com/DataWithBaraa/sql-ultimate-course

Сохраняй, проходи и прокачивай SQL 💡

@sqlhub
5👍4🔥2
⚡️ Предотвращаем потерю данных с ACID-транзакциями в DuckDB!

Без транзакций:
- Списание у Alice прошло
- Пополнение у Bob сломалось
➡️ Итог: деньги «пропали».

С транзакцией (ACID):
- Оба обновления либо проходят вместе, либо откатываются
- Баланс остаётся консистентным
- Никаких «висящих» операций

Пример:

conn.execute("BEGIN TRANSACTION")
try:
conn.execute("UPDATE accounts SET balance = balance - 200 WHERE name = 'Alice'")
conn.execute("UPDATE accounts SET balance = balance + 200 WHERE name = 'Bob'")
conn.execute("COMMIT")
except:
conn.execute("ROLLBACK")


🔹 Atomicity — либо всё, либо ничего
🔹 Consistency — база не ломается
🔹 Isolation — параллельные операции не мешают
🔹 Durability — данные не теряются

🛡 ACID гарантирует надёжность даже при сбоях.
👍32🤬1