Only Analyst
2.55K subscribers
140 photos
20 videos
157 links
Канал для всех, кто интересуется аналитикой данных и хочет изучить данную профессию
@onlyanalyst
Download Telegram
📹 Вышел новый видео-покдаст на канале!

🎬 В этом видео Александр, head of analytics Okko, делится своим карьерным путем от студента до руководителя, раскрывая ключевые аспекты роста в аналитике данных.

🫤 Что вас ждет в этом выпуске:

1. История успеха: Путь Александра из ВШЭ в крупные компании, такие как Яндекс и КиноПоиск, и создание рекомендательных систем для ритейлеров.

2. Лидерство и ответственность: Как перейти от аналитика к руководящей роли, справляться с задачами управления и поддерживать мотивацию команды.

3. Навыки и эмпатия: Почему работа с психологом, навыки переговоров и любовь к своему делу важны для успешного руководства.

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

5. Делегирование и автоматизация: Способы расширения зоны ответственности и повышения эффективности через распределение задач.

🦾 Кому будет полезно:

1. Начинающим аналитикам, ищущим путь к росту.

2. Тем, кто планирует перейти на руководящие позиции.

3. Руководителям, желающим улучшить навыки управления.

✍️ Если будут вопросы, то обязательно задавайте в комментариях здесь или на youtube!

P.S. Ссылку на ВК добавлю позже.

🔗 https://youtu.be/dW53WgKz62o
🔥16👍83👎2
🍿 Кроссовер, который мы заслужили.

📺 На нашем братском канале @nodatanogrowth вышло новое совместное видео с говорящим названием «8 минусов работы продуктового аналитика».

👩‍🏫 Вместе с Павлом Бухтиком, как минимум хорошим человеком, а как максимум ex-Head of Analytics в Yandex, развеем самые распространенные заблуждения о работе аналитика, с которыми Вы можете столкнуться на рекламных брошюрах курсов, а главное дадим ценные советы, которые помогут любую проблему обернуть в свою пользу.

✍️ P.S. Скоро выйдет видео-подкаст с Павлом, где мы разбираем все возможные data-профессии, и поможем Вам выбрать самую подходящую.

🎬 Всем приятного просмотра и по традиции жду Ваших комментариев здесь или под видео на Youtube.

🔗 https://www.youtube.com/watch?v=h0jzb5VRqDQ
🔥16👍54👎1
👋🏻 Друзья, всем привет!

🥳 Если хотите провести январские праздники с пользой, то есть отличная возможность принять участие в зимнем boot camp по созданию собственного data-проекта на базе Telegram бота.

🏕️ Приблизительные даты мероприятие с 3 по 5 января 2025 года (точно решим уже собравшейся группой). С 10:00 до 11:30.

📝 Участие по предварительной записи мне в личные сообщения @onlyanalyst.

🖼️ В рамках совместного программирования мы применим все самые востребованные для аналитиков навыки: Python, SQL, интеграции, API и многое другое (все подробности в графике к посту).

💼 А после окончания boot camp сможете самостоятельно доработать проект, возможно даже коллективно, и демонстрировать его уже потенциальным работодателям. И вместо ссылок на скучный GitHub у вас будет полноценный, интерактивный и работающий проект.

☘️ Базовое знание Python и SQL приветствуется, но не является обязательным.

😍 Всех жду! Вопросы можете задавать в комментариях к посту или мне в личные сообщения.

🏬 В комментариях пришлю базовые версии функционала конечного проекта.

😀 @onlyanalystgroup

💬 @onlyanalystchat
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥10👍3👎2
🎉 Всех подписчиков поздравляю с Новым 2025 годом!

🪅 На картинке хотел с Вами поделиться небольшой аналитикой канала, которой давно уже не было, так как цифры немного потеряли смысл, ведь за ними стоят настоящие люди!

🤶 Конечно метрики важны, но для меня канал стал уже чем-то большим, ведь он помог найти не только единомышленников, но и друзей!

🎁 Желаю Всем в Новом году больших свершений и успехов!
20🔥10👍7👎1
⛺️ Первый день boot camp по созданию data-приложений подошел к концу.

🔮 А пока группа middle и senior делают домашнее задание, а junior изучают записи первого дня, расскажу как все прошло.

😂 Мы вышли за все тайминги, перенесли начало на день вперед, кто-то опоздал, не у всех получилось запустить с первого раза код, некоторые не подготовились и не установили программы заранее. Но тем не менее мы быстро отреагировали и все вместе дошли до финала первого занятия. А умение быстро реагировать на меняющееся окружение - тоже важный навык не только в IT.

🎉 Самое главное, что мы отлично провели время и все утро как единая команда провели джейм-сейшн, но вместо гитар и клавишных у нас ноутбуки, IDE и строки кода. Вместо джаза мы создаём приложения, алгоритмы и решения реальных задач. Там, где музыкант ищет гармонию в аккордах, аналитики-разработчики — в синтаксисе и логике. Ну а документация - это не что иное как сольфеджо.

🎰 Напоминаю, что уже почти закончился набор на второй поток, в котором я учту всю обратную связь первого потока. Вы также можете еще залететь в junior тариф первого потока. Вся информация в посте выше.

https://t.me/onlyanalystgroup/312

✏️ Всей обратной связью я обязательно буду делиться, как хорошей, так и плохой. Надеюсь, что кто уже успел ознакомиться - оставит комментарии под постом.
👍16🔥42👎1
📹 Сегодня в 18-00 выйдет новое видео для тех, кто все еще путает аналитика данных с продуктовым, а бизнес аналитика с системным.

🔗 https://youtu.be/sTQCies7Spg

🎅 Первый каникулярный подкаст проводим с Павлом Бухтиком @nodatanogrowth, с которым совсем недавно рассказывали про минусы работы в аналитике в этом видео (спойлер: они есть).

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

🚀 Кому будет полезно:

1. Начинающим специалистам, желающим понять, какое направление в аналитике выбрать.
2. Студентам и выпускникам, которые хотят построить карьеру в области анализа данных.
3. Профессионалам, которые рассматривают переход в смежные аналитические роли.
4. Руководителям и рекрутерам, которые хотят лучше понимать тренды и потребности на рынке аналитиков.
5. Всем, кто интересуется развитием аналитики и новыми профессиями в этой сфере.

🙋 В онлайн чате на youtube во время просмотра буду отвечать на Ваши вопросы!

😘 Всех жду!

🔗 https://youtu.be/sTQCies7Spg

📱 ВК
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥622👎1
🏕️ Завершился каникулярный BootCamp

👨‍🎓 Меньше, чем за первые 2 недели 2025 его прошли более 20 человек. Я только закончил собирать обратную связь от участников, которые уже завершили проект и создали свое первое data-приложение с помощью Docker, Python и PostgreSQL.

🦙 Хотел бы с Вами поделиться основыми итогами:

1. С программой Boot Camp справились все вне зависимости от уровня подготовки. Новичкам конечно было тяжело, но их поддерживала команда и немного я.

2. Все участники улучшили свои знания по ключевым технологиям: у новичков рост выше из-за низкой базы, а опытные ребята применили знания на практике и их закрепили.

🥰 Вот summary ответов на вопрос «Что Вам больше всего понравилось на Boot Camp?»

🤒 Темп и сложность

Понравился темп подачи материала и уровень задач — они были интересными и достаточно сложными, чтобы хотелось разбираться дальше.

Оптимальное количество людей в группе позволяло работать вместе и помогать друг другу.

🧑‍🏫 Преподаватель и атмосфера

Алексей классно объяснял материал, без лишних деталей, но с нужной глубиной.

В команде была комфортная атмосфера, без стресса, что сделало обучение приятным.

🧑‍💻 Погружение в профессию

Полное погружение в инструменты работы дата аналитика и возможность строить свои проекты.

Возможность самостоятельно строить архитектуру проектов и работать с ETL-процессами была особенно интересной.

🏁 Результаты

Быстрое завершение проекта в компании единомышленников стало отличным итогом.

Дополнительные материалы помогали лучше разобраться в нюансах.

🔄 Обратная связь и доступность

Молниеносная обратная связь в чате и низкий порог входа сделали обучение доступным для новичков.

Ёмкость материала без лишней информации, что способствовало более эффективному обучению.

И конечно же было то, что можно улучшить. Так называемые точки роста:

1. Немного замедлить темп обучения.
2. Добавить дополнительные материалы.
3. Установить строгие дедлайны:
4. Создать пошаговые инструкции:
5. Организовать QA-сессию с преподавателем.

🧑‍💻 Многие вещи я уже учел для февральского запуска и Boot Camp станет еще более качественным продуктом благодаря подробной обратной связи.

🚀 Сегодня стартует предварительная запись на февральский Boot Camp. Для связи писать мне в личные сообщения: @onlyanalyst.

✍️ А свою команду с январского Boot Camp буду рад видеть в комментариях, чтобы они сами поделились впечатлениями и проектами. Можно кружочки и записи экранов с вашим data-приложением.
🔥115👍4👎1
🤪 Какие вы знаете подмножества языка SQL?

💽 Напомню, что SQL - это декларативный язык программирования (жду хейтеров в комментарих), применяемый для взаимодействия с базами данных.

📜 Декларативный то есть мы описываем что нужно сделать, а не как.

🤔 Первый вопрос про подмножества SQL я услышал еще в далеком на 2019 году, когда начал активно проходит собеседования. И тогда он меня застал врасплох.

🔬 Когда самостоятельно изучаешь SQL довольно сложно структурировать все потоки информации, поэтому я решил поделиться своими наработками по этой теме, чтобы Вам было проще на собеседованиях и изучении. Я подсветил основные отличия, какие операторы входят и зачем они используются.

✍️ Знали ли вы все эти подмножества? Если нет, в нашем боте @onlyanalyst_bot можно потренировать самые популярные вопросы с собеседований по SQL.

📖 И на январских праздника, помимо bootcamp я решил освежить в памяти SQL и изучил его заново с 0 до 100. Что из этого получилось? Скоро поделюсь с вами.

😀 @onlyanalystgroup

💬 @onlyanalystchat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🔥105👎1
📹 На youtube канале вышел долгожданный сиквел!

🔗 https://youtu.be/axOQrHi9AHg?feature=shared

🔗 https://vk.com/video-227412988_456239041

☝🏻 Первое видео со Станиславом вышло в сентябре 2023 и за это время многое изменилось, как и сам Станислав @stanchiks.

👩‍🎓 Всегда приятно наблюдать за успехами учеников, которые в некоторых моментах даже обошли учитлея (что как оказалось не так и сложно).

🎙 В этом подкасте Станислав делится опытом становления middle аналитиком без платных курсов за полтора года. Мы обсуждаем важные этапы его пути, трудности первых работ, переход на позицию middle-аналитика и ключевые навыки, которые помогли добиться успеха.

🔑 Основные темы:

Как эффективно войти в IT и стать аналитиком без дорогостоящих курсов

Ошибки на первой работе и поиск идеальной команды

Навыки самопрезентации и их значение для аналитиков

Самообучение через бесплатные ресурсы и документацию

Личный опыт работы в крупном банке и переход на уровень middle

Удаленная работа и баланс между карьерой и личной жизнью

💡 Кому будет интересно:

Начинающим и опытным аналитикам, стремящимся к росту

Тем, кто хочет сменить профессию и войти в IT

Всем, кто интересуется личными историями успеха и лайфхаками в аналитике

🥛Подкаст наполнен практическими советами, вдохновляющими историями и честными выводами о работе аналитиком. Подходит для тех, кто не боится трудностей и готов постоянно учиться.

😀 @onlyanalystgroup

💬 @onlyanalystchat
Please open Telegram to view this post
VIEW IN TELEGRAM
24🔥20👍8👎1
😍 Ребята, всем привет!

🧙‍♂️Я провожу довольно много собеседования (до 5 в неделю) и по долгу службы регулярно пытаюсь вычленить крупицы знаний из кандидатов. И в последнее время стал замечать, что люди путают довольно разные вещи во время своих ответов. Причины обычно две: стресс или путаница. Как бороться с первым можно узнать из давнишнего видео, а со вторым разберемся сейчас.

🏧 Есть термины, которые звучат похоже или используются в схожих контекстах, но на самом деле имеют разные значения.

🔝 Сегодня разберем топ 7 самых популярных "парочек", которые часто путают в моей практике собеседований и работы, и научимся их различать!

1. WHERE vs HAVING

WHERE используется для фильтрации строк до группировки.
HAVING применяется для фильтрации после группировки (например, с GROUP BY).
Пример:

SELECT department, AVG(salary) 
FROM employees
WHERE salary > 3000
GROUP BY department
HAVING AVG(salary) > 5000;


👉 Как не путать: Запомните, что WHERE — это "фильтр до группировки", а HAVING — "фильтр после группировки".

2. Мода vs Медиана

Мода — это значение, которое встречается в наборе данных чаще всего.
Медиана — это значение, которое находится ровно в середине упорядоченного набора данных.

Пример:
В наборе [1, 1, 2, 3, 4]:

Мода = 1 (встречается чаще всего).
Медиана = 2 (середина списка).

👉 Как не путать: Мода — про "частоту", медиана — про "середину".

3. Точность (Precision) vs Полнота (Recall)

Точность — это доля правильных предсказаний среди всех положительных предсказаний модели.
Полнота — это доля правильных предсказаний среди всех реальных положительных случаев.

Пример:
Если модель предсказала 10 котов, но только 8 из них действительно коты:

Точность = 8/10 = 80%.
Полнота = 8/(общее число котов в данных).

👉 Как не путать: Точность — про "качество предсказаний", полнота — про "охват реальных случаев".

4. Корреляция vs Причинность

Корреляция — это статистическая связь между двумя переменными.
Причинность — это когда одна переменная вызывает изменение другой.

Пример:
Летом продажи мороженого и количество утоплений коррелируют, но это не значит, что мороженое вызывает утопления.

👉 Как не путать: Корреляция — про "связь", причинность — про "влияние".

5. Гистограмма vs Столбчатая диаграмма

Гистограмма показывает распределение непрерывных данных (например, возраст, доход) через интервалы (бины).
Столбчатая диаграмма сравнивает категориальные данные (например, продажи по городам).

Пример:

Гистограмма: сколько людей в интервалах 20-30 лет, 30-40 лет и т.д.
Столбчатая диаграмма: продажи в Москве, Петербурге, Казани.

👉 Как не путать: Гистограмма — для чисел с интервалами, столбчатая диаграмма — для категорий.

6. Генеральная совокупность vs Выборка

Генеральная совокупность — это все объекты исследования (например, все пользователи приложения).
Выборка — это подмножество генеральной совокупности, с которым работает аналитик.

Пример:
Если вы опрашиваете 1000 человек из 10 млн пользователей, это выборка.

👉 Как не путать: Генеральная совокупность — "все", выборка — "часть".

7. Сортировка vs Фильтрация (путают чаще всего)

Сортировка упорядочивает данные по заданному критерию (например, по возрастанию или алфавиту), не удаляя строки.
Фильтрация оставляет только те данные, которые соответствуют условию, исключая остальные.

Пример:

Сортировка: список клиентов по дате регистрации (от новых к старым).
Фильтрация: показ только клиентов из Москвы.

👉 Как не путать:

Сортировка меняет порядок данных («сначала дорогие товары»).
Фильтрация меняет состав данных («только товары со скидкой»).

🎯 А какие термины путали вы? Делитесь в комментариях!

P.S

Если тема поста понравится, то сделаю из нее небольшую серию еще по Python и SQL.

😀 @onlyanalystgroup

💬 @onlyanalystchat

#аналитика #sql #статистика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6311🔥8👎1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
23🔥16👍6
🚀 Обновленный BootCamp 2.0 Telegram-бота теперь и с Superset с практикой полного стека для Data Analyst

🔍 Что вы получите: Это не просто пет-проект — это дата-продукт, приближенный к реальной работе. Вы разрабатываете Telegram-бота, подключаете его к базе данных, интегрируете с внешним API, визуализируете данные в Superset и управляете всем через Docker. То, что делают Data Analysts и Data Engineers в настоящих компаниях. Разберете полный цикл жизни данных!

🧠 Почему это помогает найти работу:

🎯 Работодатели ищут не просто знания SQL или Excel — им нужны практики, умеющие работать с настоящими системами, API, BI и DevOps. В этом проекте вы не учитесь в “тренажерах” — вы создаёте рабочую систему с понятной архитектурой, которую можно показать на собеседовании.

Вы не просто знаете SQL — вы управляете настоящей PostgreSQL-базой
Вы не просто слышали о BI — вы создаёте дашборды в Superset
Вы не просто понимаете API — вы подключаетесь к реальному сервису и обрабатываете его данные
Вы не просто читаете про Docker — вы запускаете контейнеры и настраиваете окружение под себя

🛠 Технологии, которые вы освоите:

Языки и библиотеки:
Python 3.10 — основной язык
python-telegram-bot — создание Telegram-бота
requests — подключение к внешнему API
psycopg2 — работа с PostgreSQL через Python
matplotlib — визуализация внутри бота
io, datetime, logging, os — системные библиотеки
СУБД:
PostgreSQL 15
Таблицы с историей сообщений и курсов валют
Конструкции ON CONFLICT DO UPDATE, SERIAL, PRIMARY KEY, DATE
BI и визуализация:
Apache Superset
Подключение к PostgreSQL
Построение интерактивных графиков и дашбордов
Использование фильтров, дропдаунов и сегментации
Инфраструктура:
Docker + Docker Compose
Контейнеризация каждого компонента: бот, БД, Superset, pgAdmin
Подключение по переменным окружения (.env)
Изоляция и управление зависимостями
API:
OpenExchangeRates
Получение исторических курсов валют
Работа с параметрами, заголовками и JSON-ответами
Обновление БД при помощи данных из API

📈 Примеры реальных задач, которые вы решаете:

Запись пользовательских сообщений и последующая фильтрация по имени
Работа с историческими временными рядами валют
Построение графиков внутри Python-бота
Автоматическая очистка или вывод сообщений по команде
Визуализация трендов валют в Superset по дням и валютам

🎓 Итог:

Готовый проект в портфолио на GitHub
Собственный продукт, который сможете дальше развивать и оттачивать хард-скилы
Понимание, как работает современная инфраструктура аналитика
Навыки работы с BI-инструментами, SQL и Python
Опыт DevOps-окружения
Уверенность на собеседованиях: вы сможете рассказать не теорию, а как "вживую" работали с API, Docker, БД и визуализацией

📡 Дополнительно обработал обратную связь от 30+ учеников, которые уже прошли BootCamp. 100% студентов указали, что их знания и понимание технологий улучшились.

🎮 Первая группа уже набрана по предзаписи, так что идет заход на вторую часть майских. Продолжительность 5 дней по 1 часу. Для записи - пишите в личку @onlyanalyst. Стартовать будем как наберемя новую группу. Время и точные даты начала отдельно согласуем в общем чате группы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥224🥰3👍2👎1
🎖 С Днём Победы Красной армии и советского народа над нацистской Германией в Великой Отечественной войне 1941–1945 годов!

В честь 9 мая — снова небольшая динамическая визуализация, посвящённая теме военной индустрии.

В этот раз я подготовил графики на основе данных SIPRI Top 100 Arms-Producing Companies (2002–2023):

🏭 Топ-20 оборонных компаний мира по объёму продаж оружия (в миллионах $).
🌍 Топ-20 стран мира по суммарным доходам оборонных компаний (в миллионах $).

👀 Интересно наблюдать, как в течение двух десятилетий:

На арену выходят новые игроки,
Меняется геополитическая расстановка сил,
И кто действительно правит оружейным рынком.

📊 Источник: SIPRI (Стокгольмский международный институт исследований проблем мира).
📅 Период: 2002–2023 гг.
📦 В выборке — все компании из ежегодного рейтинга SIPRI Top 100.

С Днём Победы!

Пусть память о прошлом помогает осмысливать настоящее.

Ссылка на данные прошлого года

😀 @onlyanalystgroup
💬 @onlyanalystchat
2👍2719🔥8👎5
🎯 Разбор live-coding SQL компании VK

Делаем новую рубрику - разбор заданий с live-coding секций компаний. В этот раз со мной поделились задачей на продуктового аналитика в VK. Актуально на май 2025.

Разберем не просто SQL решение конкретной задачи, а именно методологию, декомпозицию, как себя вести и что делать в трудных ситуациях.

Задача довольно объемная и состоит из трех частей, поэтому разделим историю на несколько постов.

Поехали!

Ты на секции live-coding. У тебя есть онлайн редактор и SQL. Цель — показать не только решение, но и ход мыслей. Показываю, как рассуждать пошагово и писать читаемый код.

📋 Внимательно изучаем условие

У нас есть таблица visits со следующими колонками:

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


🔍 Задача:

Построить таблицу, где указано количество новых пользователей по дням их первого визита. Это и есть когорты привлечения.

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

Шаг 0 — понять, что такое «когорта привлечения»
Когорта в этом задании — это группа пользователей, у которых первый визит был в один и тот же день.
Например, если 1 марта в первый раз пришли 120 человек, а 2 марта — 90, то у нас две когорты.

Шаг 1 — для каждого пользователя определить дату его первого визита
Это делается с помощью агрегирования:

MIN(datetime) по каждому user_id

Обернём это в DATE(...), чтобы убрать время

Шаг 2 — посчитать, сколько пользователей в каждой дате (когорте)
Просто сгруппируем результаты предыдущего шага по cohort_date

И посчитаем количество строк (пользователей) в каждой дате

Шаг 3 — аккуратно оформить код: используем CTE. Это удобно: видно каждый шаг. Упрощает чтение кода интервьюером

🧱 Сборка кода по частям

🔹 Шаг 1: Сначала — дата первого визита

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


🔎 Здесь мы для каждого пользователя находим его первую дату визита — и это его когорта.

🔹 Шаг 2: Теперь считаем пользователей по дате когорт

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


🔎 Мы группируем пользователей по cohort_date и считаем их количество.

🔹 Шаг 3: Финальный результат

WITH first_visits AS (
SELECT
user_id,
MIN(DATE(datetime)) AS cohort_date
FROM visits
GROUP BY user_id
),
cohort_sizes AS (
SELECT
cohort_date,
COUNT(*) AS users_count
FROM first_visits
GROUP BY cohort_date
)
SELECT *
FROM cohort_sizes
ORDER BY cohort_date;


💡 Общие советы для секции live-coding:

🧩 Решай пошагово. Сначала на бумаге/в голове разбери: «Что мне нужно посчитать? Что известно?»

🗣 Говори вслух. Даже если пишешь простой GROUP BY, комментируй: "Я сейчас группирую по дате привлечения, чтобы получить когорты".

🔤 Пиши чисто. Хорошие имена CTE показывают твоё мышление (first_visits, cohort_sizes, а не cte1).

😌 Думай просто. Интервьюер скорее оценит чёткую структуру, чем «хитрый хак».

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

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

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

Если пост и формат в целом зайдет (это я пойму по реакциям), то добавим еще и видео решение с подробным объяснением и разными подходами.

😀 @onlyanalystgroup
💬 @onlyanalystchat
👍50🔥1710👎1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥17👍73👎2
This media is not supported in your browser
VIEW IN TELEGRAM
9👍9🔥7👎1
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