Only Analyst
2.55K subscribers
140 photos
20 videos
158 links
Канал для всех, кто интересуется аналитикой данных и хочет изучить данную профессию
@onlyanalyst
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
11🔥6👍4👎1
🎯 Live-coding SQL часть 2: Ретеншн первой недели по когортам

Продолжаем тренироваться в секции live-coding по SQL от компании VK. Если пропустили, то первая часть по ссылке.

📋 Условие

Напоминаю: у нас таблица visits со схемой:

user_id    -- ID пользователя  
campaign -- канал привлечения
datetime -- дата и время визита


🧠 Задача

Посчитать ретеншн первой недели по когортам:
Для каждой даты первого визита (когорты) — сколько пользователей вернулись хотя бы один раз в течение 7 дней после первого визита (не включая сам день прихода).

⚙️ Декомпозиция задачи

💠 Шаг 0 — план действий

Нам нужно:
• Определить дату первого визита (как в задаче 1)
• Найти все визиты, которые произошли строго после этой даты
• Оставить только те, что произошли в течение 7 дней
• Посчитать, сколько уникальных пользователей вернулось по каждой когорте


💠 Шаг 1 — CTE с первой датой визита (cohort_date)

Повторим из прошлого задания — база для когорт.

WITH first_visits AS (
SELECT
user_id,
MIN(DATE(datetime)) AS cohort_date
FROM visits
GROUP BY user_id
)


💠 Шаг 2 — джойним с исходной таблицей

Нам нужно сопоставить:
• когорта пользователя
• последующие визиты
• ограничение в 7 дней после первого прихода

, retention_visits AS (
SELECT
fv.user_id,
fv.cohort_date,
DATE(v.datetime) AS visit_date
FROM first_visits fv
JOIN visits v ON fv.user_id = v.user_id
WHERE DATE(v.datetime) > fv.cohort_date -- позже, чем первый визит
AND DATE(v.datetime) <= fv.cohort_date + INTERVAL '7 day' -- но не позже 7 дней
)


💠 Шаг 3 — считаем вернувшихся пользователей по когорте

, retained_users AS (
SELECT
cohort_date,
COUNT(DISTINCT user_id) AS retained_users_count
FROM retention_visits
GROUP BY cohort_date
)


💠 Шаг 4 — добавим размер когорт (из первого задания)

, cohort_sizes AS (
SELECT
cohort_date,
COUNT(*) AS users_count
FROM first_visits
GROUP BY cohort_date
)


💠 Шаг 5 — собираем результат

WITH first_visits AS (
SELECT
user_id,
MIN(DATE(datetime)) AS cohort_date
FROM visits
GROUP BY user_id
),
retention_visits AS (
SELECT
fv.user_id,
fv.cohort_date,
DATE(v.datetime) AS visit_date
FROM first_visits fv
JOIN visits v ON fv.user_id = v.user_id
WHERE DATE(v.datetime) > fv.cohort_date
AND DATE(v.datetime) <= fv.cohort_date + INTERVAL '7 day'
),
retained_users AS (
SELECT
cohort_date,
COUNT(DISTINCT user_id) AS retained_users_count
FROM retention_visits
GROUP BY cohort_date
),
cohort_sizes AS (
SELECT
cohort_date,
COUNT(*) AS users_count
FROM first_visits
GROUP BY cohort_date
)
SELECT
cs.cohort_date,
cs.users_count,
COALESCE(ru.retained_users_count, 0) AS retained_users,
ROUND(COALESCE(ru.retained_users_count, 0)::numeric / cs.users_count, 2) AS retention_rate
FROM cohort_sizes cs
LEFT JOIN retained_users ru ON cs.cohort_date = ru.cohort_date
ORDER BY cs.cohort_date;


💡 Советы для секции live-coding (часть 2):
1. Переиспользуй. Продемонстрирую структурное мышление и внимательность возвращаясь к прошлым результатам, нежели писать все с 0 каждый раз.
2. Формулируй вслух, что проверяешь. Например: «Сейчас я фильтрую визиты, произошедшие после первого визита, но не позже 7 дней — для метрики раннего ретеншна».
3. Добавляй защиту от NULL-ов. Используй COALESCE, если есть LEFT JOIN — это демонстрирует внимание к деталям.
4. Поясняй математику. Даже если A / B, проговори: «делю число вернувшихся на размер когорты, чтобы получить процент ретеншна».

📎 В следующем посте: ретеншн первой недели по каналам привлечения.

Интересные задачи присылайте мне в личку - разберем. @onlyanalyst

Вопросы по прохождению такой секции, то задавайте в комментариях.

😀 @onlyanalystgroup
💬 @onlyanalystchat
🔥186👍3👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Новый формат буткемпа: аналитический продукт с нуля за 4 дня

Запускаю новую серию онлайн-буткемпов — максимально прикладной подход для аналитиков всех уровней.

📅 Даты: 12–15 июня

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

По факту это коммерческий опыт, который вы сможете адаптировать к текущей работе и как сторонний проект для добавления в резюме. Это не бесполезный GitHub с jupiter ноутбуками из Рамблер.Техникума, а настоящий проект.

📌 Формат и программа:

12–13 июня (2 дня по 2 часа) — Базовый блок

🔧 Технологии:

Python (asyncio, requests, logging, io)

PostgreSQL + psycopg2

Docker + docker-compose

matplotlib

🧠 Что делаем:

Разворачиваем Telegram-бота в Docker, подключаем базу, логируем данные, визуализируем графики.

📍Зачем это аналитику:

работать с API и асинхронным кодом

хранить данные в PostgreSQL

создавать визуализации

💰 Участие: 10 000 ₽ онлайн / 5 000 ₽ запись

14 июня — Блок Superset

🔧 Технологии: Apache Superset

🧠 Что делаем:

Подключаем Superset к базе, создаём BI-дэшборды, учимся фильтровать, кастомизировать визуализации.

📍Почему это важно:

BI — обязательный навык в работе аналитика


умение строить дашборды в Superset — востребовано в ИТ-компаниях

💰 Участие: всё вместе с Superset — 15 000 ₽ онлайн / 7 500 ₽ запись

15 июня — Блок Airflow

🔧 Технологии: Apache Airflow

🧠 Что делаем:

Создаём полноценный ETL пайплайн для обновления данных.

📍Зачем это нужно:

автоматизация задач

опыт продакшен-пайплайнов

понимание, как работают данные в команде

💰 Участие: полный буткемп с Superset + Airflow — 20 000 ₽ онлайн / 10 000 ₽ запись

💡 Что получится на выходе?

- Ты соберёшь реальный микросервис, в который входит:

- Telegram-бот, который взаимодействует с пользователем

- PostgreSQL-база с логированием событий

- matplotlib-графики

- BI-дашборды в Superset

- ежедневный автоапдейт данных через Airflow

📦 Это можно самостоятельно развернуть на сервере, показать на собеседовании и использовать в портфолио. Забудьте про "нескучные" ссылка на GitHub.

📈 Этот проект покрывает ключевые навыки, которые ищут работодатели: python, sql, docker, apache superset и apache airflow

Часто задаваемые вопросы

Можно ли участвовать с нуля?

- Да, буткемп подходит новичкам. Не нужно опыта работы. Всё объясняется пошагово.

Что нужно установить заранее?

- Docker Desktop

- Visual Studio Code

- Zoom

Все программы бесплатные. Инструкции по установке вышлю.

Как проходит обучение?

- Живые занятия в Zoom с записью

- Формат live-coding: ты видишь, как я пишу код

- Каждую строчку кода я объясняю голосом и оставляю комментарий прямо в коде

- Можно делать вместе со мной или по записи

Можно ли оплатить в рассрочку?

- Да, можно разбить платёж на 2 части.

Какие системные требования?

- Любая операционная система, 8 Гб оперативной памяти желательно. Если не подходит, то можете арендовать отдельный сервер.

🤝 Атмосфера: как в настоящей ИТ-команде

Ты не просто учишься — ты ощущаешь, как работает продуктовая команда:

- ежедневные синки (в начале каждого занятия — как в рабочих командах)

- обсуждение архитектуры, задач, проблем

- общий чат для общения, вопросов, взаимопомощи

- фидбек, практика и живое взаимодействие

📍Это не мёртвый курс — это живой ИТ-опыт.

💬 Напиши, если хочешь забронировать место. Кол-во участников в онлайн-группе ограничено.

😀 OnlyAnalyst. Погружаемся в аналитику по-настоящему.

P.S. Все участники еще также узнают первыми о моем новом направлении - AnalystCamp.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥98👎2
🎓 Что говорят участники про Буткемп?

Более 50 человек уже прошли наш интенсив — и вот что они говорят:

💬 «Курс отличный и будет становиться только лучше. Можно отлично и весело провести время, узнав для себя что-то новое!»
@ilya_mosin_wa

💬 «Очень круто попробовать что-то новое и разобраться с инструментами, о которых раньше только слышала. Теперь я точно знаю — это реально освоить, главное не бояться!»
@kusyakek

💬 «Это был мой первый опыт с TG-ботом, Python и Docker. Прошло всего несколько звонков — и уже готовый проект. Этот опыт помог мне пройти собеседование и получить оффер!»
@nastyarimbaud

💬 «Материал без воды, чётко, с молниеносной поддержкой, ощущение настоящего рабочего процесса»
@nastyarimbaud

💬 «Очень понравился дух обучения, команда, поддержка, и всё это с подачей “говорящей головы”, где каждое действие объясняется на пальцах»
@Lexina_Elena

💬 «Проект реально можно трогать руками, адаптировать под себя, и он работает! Это кайф»
@kusyakek

💬 «Подача без “высокого порога входа” — всё объяснено и показано, и даже новичок может подключиться»
@anni_parsh

💬 «Отдельный респект за организацию: все программы работали без сбоев, никаких технических сложностей. А подача — на высоте!»
@reddis_m

💬 «Очень понравилось то, как Алексей строит атмосферу: уверенно, спокойно, без “воды”, фокус на реальную практику»
@avonadzh

💬 «Домашка помогала закрепить материал, а структура буткемпа — это просто идеальный формат для первого data-проекта»
@EllKirill

🛠 Участники отмечают:
Понятную и «разжёванную» подачу материала
Проект, который можно показать на собеседовании
Настоящее погружение в Docker, SQL, Python и Telegram API
Готовый data-продукт за считаные дни
Рабочую атмосферу, поддержку и командную динамику
Ощущение реального опыта IT-разработки

🧠 Даже те, кто пришли с минимальными знаниями, уходили с конкретным результатом и пониманием, как строятся data-продукты.

🎯 Итог буткемпа — это не просто уроки, а:
— первый data-проект своими руками
— уверенность в себе
— новое окружение
— и строчка в резюме, которая работает

🚀 Июньский bootcamp уже полность набран и остался только в формате в записей. Кто хочет записаться на июль - можете писать мне в личные сообщения @onlyanalyst

😀 OnlyAnalyst. Погружаемся в аналитику по-настоящему.
Please open Telegram to view this post
VIEW IN TELEGRAM
12🥰3👎1🔥1
☀️ Я знаю, что вы делали этим летом.

🏕️ Прошло уже 2 недели с последнего буткемпа и наконец-то можно выдохнуть и подвести итог.

🐼 Это был самый большой, самый полный буткем за всю историю: Telegram, Python,
API, SQL, Airflow, Superset. Это если не
вдаваться в подробности.

😊 Меня радует, что созданный продукт реально приносит пользу людям и не имеет аналогов у «продавцов курсов»

🙇‍♀️ Но у них такого продукта не может быть
по определению: они хотят просто что-то продать, а мы хотим научиться применять современные аналитические технологии, чтобы приобрести коммерческий опыт.

🔮 Что дальше? По сути это первопроходный формат и новое слово в обучении. Поэтому было принято решение перенести его в новую плоскость. Ждите анонсов. Наш ламповый канал скоро сделает большой шаг вперед!

🤫 Не буду много рассказывать сам, а лучше попрошу учеников самостоятельно в комментариях поделиться своими

🖼️ А к посту приложил скриншоты. Можете
оценить вайб по нашим «серьезным» лицам, а по остальным скриншотам посмотрите что мы там сделали за 4 дня.

🏯 На втором скриншоте можете оценить нашу архитектуру. Так что по сути и начальный system design тоже добавлю (шучу).

😀 OnlyAnalyst. Погружаемся в аналитику по-настоящему.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥269👍6
This media is not supported in your browser
VIEW IN TELEGRAM
🔥144👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥175👍43🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
👍16🔥74
This media is not supported in your browser
VIEW IN TELEGRAM
🔥164👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🔥15👍32
This media is not supported in your browser
VIEW IN TELEGRAM
🔥113👍3
📊 Как рассказывать про непростые графики?

На этот график я наткнулся пару месяцев назад. С первого взгляда всё очевидно, но в аналитике, как обычно, не всё так просто.

Ниже разбор, как мы проверили источники, сопоставили показатели и исправили визуализацию.

1) Базовый график
На нём рядом целые страны (Франция, Канада, Финляндия, Чехия, Австрия) и группы населения США (афроамериканцы, латиноамериканцы, белые).

Подпись «OECD», «WHO», «CDC» есть, но методика и год не указаны. Значения по странам завышены, по США — очень высокие.

2) Как определили источники
США (CDC, 2022, crude): Black — 27.5, Hispanic — 5.5, White — 2.0. Источник: MMWR.
Страны (UNODC, 2022): Канада — 0.889, Австрия — 0.145, Франция — 0.100, Финляндия — 0.091, Чехия — 0.095.

Почему не OECD/WHO? UNODC — эталон по «умышленным убийствам с применением огнестрела», CDC — медрегистрация смертей в США.

3) Ошибки и исправления
• Смешение уровней → разделили страны и группы.
• Неясный показатель → взяли только firearm homicide.
• Нет года → указали 2022.
• Разная методология → дали дисклеймер.
• Не указано crude/age-adjusted → уточнили, что crude.
• Риск экологической ошибки → без причинных выводов.

4) Исправленный график
Разница осталась огромной, но сравнение стало корректным.

5) Выводы

firearm homicide у некоторых групп США в разы выше, чем в странах ОЭСР.

Этничность ≠ причина — нужны модели с контролем факторов. Нужна корректная модель с контролем факторов (возраст, место проживания, доход, занятость, доступ к оружию и т. д.).

ℹ️ Мини-справка
Crude rate — случаи на 100 тыс. без учёта возраста: просто, но искажает сравнения.
Age-adjusted rate — пересчёт при одинаковой возрастной структуре: чище, но сложнее.
💡 Молодая страна может казаться опаснее по crude, но после поправки разница исчезает.

На какие мысли наводит этот график?

И какие дальнейшие действия предприняли бы?

😀 OnlyAnalyst. Погружаемся в аналитику по-настоящему.

💬 Наш чатик.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥95👍11
Ребят, наш любимый Data Engineer Евгений снова делится базой: в этот раз рассматриваем передовые инструменты для MlOps. И самое крутое, что скоро это решение станет частью нашего нового BootCamp! Как всегда обоюдные подписчики будут получать максимум полезной информации! Всех ждем.
6🔥3👍1
Forwarded from DataДжунгли🌳
Media is too big
VIEW IN TELEGRAM
Что интересного можно узнать в воскресение?

Например:
- Как делать автоматизированный канал про ИИ который ведет ИИ?🤯
- Как экономить деньги если ты гениальный программист? 😄
- Что такое n8n?
- Google таблица как база данных не так и плоха! 💡

Дорогие подписчики только для вас эксклюзивный контент !
В этом видео я отвечу на вопросы выше, а также вы получите ссылку на мой новый интересный автоматизированный - канал 👯
Подпишитесь на новый канал @iishnoe если любите ИИ, пошарьте друзьям это видео чтобы они тоже не терялись в технологиях будущего.

Надеюсь будет интересно, лайки коменты и респекты приветствуются 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍42
🚀 Новый формат буткемпа: аналитический продукт с нуля за 4 дня

Запускаю новую серию онлайн-буткемпов — максимально прикладной подход для аналитиков всех уровней.

📅 Даты: 10–14 октября 2025 года

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

По факту это коммерческий опыт, который вы сможете адаптировать к текущей работе и как сторонний проект для добавления в резюме. Это не бесполезный GitHub с jupiter ноутбуками из Рамблер.Техникума, а настоящий проект.

📌 Формат и программа:

10–12 октября (2 дня по 2 часа) — Базовый блок

🔧 Технологии:

Python (asyncio, requests, logging, io)

PostgreSQL + psycopg2

Docker + docker-compose

🧠 Что делаем:

Разворачиваем Telegram-бота в Docker, подключаем базу, логируем данные, визуализируем графики.

📍Зачем это аналитику:

работать с API и асинхронным кодом

хранить данные в PostgreSQL

создавать визуализации

💰 Участие: 10 000 ₽ онлайн / 5 000 ₽ запись

13 октября — Блок Superset

🔧 Технологии: Apache Superset

🧠 Что делаем:

Подключаем Superset к базе, создаём BI-дэшборды, учимся фильтровать, кастомизировать визуализации.

📍Почему это важно:

BI — обязательный навык в работе аналитика


умение строить дашборды в Superset — востребовано в ИТ-компаниях

💰 Участие: всё вместе с Superset — 15 000 ₽ онлайн / 7 500 ₽ запись

14 октября — Блок Airflow

🔧 Технологии: Apache Airflow

🧠 Что делаем:

Создаём полноценный ETL пайплайн для обновления данных.

📍Зачем это нужно:

автоматизация задач

опыт продакшен-пайплайнов

понимание, как работают данные в команде

💰 Участие: полный буткемп с Superset + Airflow — 20 000 ₽ онлайн / 10 000 ₽ запись

💡 Что получится на выходе?

- Ты соберёшь реальный микросервис, в который входит:

- Telegram-бот, который взаимодействует с пользователем

- PostgreSQL-база с логированием событий

- BI-дашборды в Superset

- ежедневный автоапдейт данных через Airflow

📦 Это можно самостоятельно развернуть на сервере, показать на собеседовании и использовать в портфолио. Забудьте про "нескучные" ссылка на GitHub.

📈 Этот проект покрывает ключевые навыки, которые ищут работодатели: python, sql, docker, apache superset и apache airflow

Часто задаваемые вопросы

Можно ли участвовать с нуля?

- Да, буткемп подходит новичкам. Не нужно опыта работы. Всё объясняется пошагово.

Что нужно установить заранее?

- Docker Desktop

- Visual Studio Code

- Zoom

Все программы бесплатные. Инструкции по установке вышлю.

Как проходит обучение?

- Живые занятия в Zoom с записью

- Формат live-coding: ты видишь, как я пишу код

- Каждую строчку кода я объясняю голосом и оставляю комментарий прямо в коде

- Можно делать вместе со мной или по записи

Можно ли оплатить в рассрочку?

- Да, можно разбить платёж на 2 части.

Какие системные требования?

- Любая операционная система, 8 Гб оперативной памяти желательно. Если не подходит, то можете арендовать отдельный сервер.

🤝 Атмосфера: как в настоящей ИТ-команде

Ты не просто учишься — ты ощущаешь, как работает продуктовая команда:

- ежедневные синки (в начале каждого занятия — как в рабочих командах)

- обсуждение архитектуры, задач, проблем

- общий чат для общения, вопросов, взаимопомощи

- фидбек, практика и живое взаимодействие

📍Это не мёртвый курс — это живой ИТ-опыт.

💬 Напиши, если хочешь забронировать место. Кол-во участников в онлайн-группе ограничено.

😀 OnlyAnalyst. Погружаемся в аналитику по-настоящему.

P.S. Все участники еще также узнают первыми о моем новом направлении - AnalystCamp.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥206👎2👍1