Your trial period has ended!
For full access to functionality, please pay for a premium subscription
AN
Мир аналитика данных
https://t.me/analysts_world
Channel age
Created
Language
Russian
1.53%
ER (week)
1.69%
ERR (week)

Пишу о рабочих буднях и о том как я сменила профессию.

Можно отблагодарить данатами за контент boosty.to/analysts_world

Автор канала: @Valeria_Shuvaeva

Messages Statistics
Reposts and citations
Publication networks
Satellites
Contacts
History
Top categories
Main categories of messages will appear here.
Top mentions
The most frequent mentions of people, organizations and places appear here.
Found 36 results
🐍 Полюбила функцию .map() — за что и почему?

Ну что, опять рабочий пример. Не сложный - все таки пятница! Недавно нужно было привести разные payment_system к человекочитаемым типам оплаты — карты РФ, карты не РФ, кредиты, оплата частями и т.д. Задача вроде простая — но очень частая: 🧹 "почистить" и структурировать данные.

💡 Решение через .map()
Выглядело это примерно так:

data = {'payment_system': ['sberbank', 'tinkoff', 'stripe', 'tinkoffcredit', 'alpha_bank_podeli'],
'amount': [1000, 2000, 1500, 3000, 2500]}
df = pd.DataFrame(data)

map_dict = {
'sberbank': 'Оплата картами РФ',
'tinkoff': 'Оплата картами РФ',
'stripe': 'Оплата картами не РФ',
'tinkoffcredit': 'Т-Банк кредит',
'alpha_bank_podeli': 'Подели (Альфа-Банк)'
}

df['payment_type'] = df['payment_system'].map(map_dict)

✅ Я сделала категоризацию платежных систем! Круто звучит, правда? А если просто - то, применила словарь к данным в столбце. В вашем случае он заменяет названия платежных систем на их категории. Преобразование занимает одну строку — читаемо, быстро и лаконично.

🔍 Что такое .map() вообще?

.map() — метод в pandas, который применяется к Series (одному столбцу) и возвращает новую Series.
Он может принимать:

➖словарь — для замены значений (value: new_value) как мы и сделали

➖функцию — для произвольной логики

⚠️ Нюансы использования:
- Работает только с одной колонкой
- Для нескольких — нужно использовать apply().

Решение через .apply()

def get_payment_type(ps):
if ps in ['sberbank', 'tinkoff']:
return 'Оплата картами РФ'
elif ps == 'stripe':
return 'Оплата картами не РФ'
elif ps == 'tinkoffcredit':
return 'Т-Банк кредит'
elif ps == 'alpha_bank_podeli':
return 'Подели (Альфа-Банк)'
return 'Другое'

df['payment_type'] = df['payment_system'].apply(get_payment_type)

☝️Вывод:
Если нужно быстро заменить или классифицировать значения в одном столбце — .map() 🔥
Особенно удобно с категорией платежей, типов устройств, источников трафика и т.п.

Теперь это один из моих go-to инструментов 💼
04/25/2025, 14:58
t.me/analysts_world/246
04/18/2025, 12:45
t.me/analysts_world/245
04/18/2025, 12:45
t.me/analysts_world/244
04/18/2025, 12:45
t.me/analysts_world/243
«Я в режиме реального времени поясняла структуру запросов / ответов в Postman и разбирала документацию в Swagger», — пишет аналитик, который прошел наш курс, а потом два технических собеседования в международные компании. Приятно, конечно ❤️

Если в 2025 году вы хотите:
— научиться выбирать стиль интеграции под вашу задачу;
— начать проектировать с нуля и описывать интеграции в современных стилях (API: REST, SOAP, gRPC и других, + брокеры сообщений);
— узнать как правильно собирать требования и моделировать в UML;
— подготовиться к собеседованию, решив более 100 заданий;
— запустить свой API на Python.

Значит наш курс для вас!

🚀 Начните с открытых бесплатных
уроков — переходите в бот курса и жмите «Старт»
👇
@studyit_help_bot

🚀 Скидка на курс
от канала — 1 000₽ на Stepik по промокоду ANALYST до конца апреля.
04/18/2025, 12:45
t.me/analysts_world/241
04/18/2025, 12:45
t.me/analysts_world/242
Удалёнка — кайф или кому как? 🧳🏡

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

Когда-то мне искренне нравился офис: обеды в кафешках с коллегами 🍝, кофе-брейки ☕️, живые разговоры, лица в метро, смена обстановки, движ — всё это давало ощущение движения, жизни, причастности.

Но как только появилась возможность быть ближе к детям — забирать их из школы 🏫, готовить дома 🍳, водить на кружки 🎨 — я даже не сомневалась. Удалёнка — это просто спасение для родителей. Реально шик, топ, красота!

Иногда скучаю по «поболтать с коллегами в кафешке». Но сейчас это как бизнес-класс — красиво, но мимо.

Удалёнка — не универсальный кайф, но для меня в этом этапе жизни — это то, что нужно.

💬 Кто-то обожает полный ремоут. Кто-то прётся от офисной движухи.

А вы как работаете? Какой ритм вам комфортен? А может у вас гибрид?
04/16/2025, 11:11
t.me/analysts_world/239
Как проектировать эффективные решения с использованием дизайнера бизнес-процессов?

Бизнес-процессы играют ключевую роль в автоматизации деятельности компании, особенно когда речь идет о сложных многоступенчатых операциях. В Битрикс24 существует два основных типа бизнес-процессов — последовательные и со статусами.

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

✅Практика: проектирование и запуск бизнес-процессов с использованием встроенного инструмента в Битрикс24

🎁Бонус: расскажем как адаптировать существующие бизнес-процессы под новые требования бизнеса

Регистрация на урок 👇
https://otus.pw/8YOa/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
04/15/2025, 11:04
t.me/analysts_world/238
🎓 Продвинутая аналитика Яндекс.Метрики для маркетологов — теперь бесплатно на Stepik!

Ровно год назад я вынашивала идею: а можно ли поиграться с Яндекс.Метрикой, не создавая полноценный сайт? 📊
Ответ нашёлся — можно! Я прикрутила счётчик к каналу на Дзене и начала изучать поведение пользователей прямо оттуда: сколько людей пришли, что читали, какие статьи заходят лучше всего.

➡️Об этом я подробно писала в посте:

А теперь хочу поделиться крутым бесплатным курсом, который отлично дополнит этот опыт.

👨‍🏫 Друг моего друга запустил курс на Stepik: "SQL для маркетинга. Продвинутая аналитика данных Яндекс.Метрики".
Да, бесплатно, да, полезно, да, от души — таких инициатив всегда хочется поддержать ❤️

Если вы работаете с метрикой, хотите прокачать SQL именно под задачи анализа трафика, понимать поведение пользователей и строить крутые отчёты — загляните. Уверена, вам понравится!

📌 Учим тут https://stepik.org/course/192052
04/09/2025, 17:17
t.me/analysts_world/237
⚡️Создаем эффективный дашборд как в Wildberries

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

Егор Чеменев, опытный продуктовый аналитик из Wildberries и автор телеграм-канала «Data Brew», проведет прямой эфир, посвященный созданию продуктового дашборда.

На этой неделе мы уже проводили эфир по WB — анализировали продажи с помощью Python. Теперь идем дальше — Егор, благодаря своему опыту в Wildberries, продемонстрирует, как эффективно использовать данные и инструменты для создания дашбордов.

Что будем делать:
🟠Выберем метрики: узнаем, какие ключевые показатели необходимо отслеживать для развития продукта;
🟠Напишем запросы в PostgreSQL;
🟠Научимся визуализировать данные в Power BI так, чтобы они были понятны и полезны для принятия решений;
🟠Отталкиваясь от визуализации поищем идеи для будущих исследований.

🕗 Встречаемся 8 апреля в 18:30 по МСК

😶Зарегистрироваться на бесплатный вебинар
04/08/2025, 15:22
t.me/analysts_world/236
🔥 Выгорание в моде?
Вижу, как многие жалуются на выгорание. Особенно молодые. Те, кто уже стал лидом или начальником какого-то направления. И у меня каждый раз один и тот же вопрос: а о чём вы думали раньше?

Быть руководителем — это не «теперь у меня зарплата пятьсот и свой проект». Это — постоянная тревожность, дедлайны в голове даже по выходным, ответственность за людей, стресс, от которого не отключиться. Чем выше залез — тем сильнее бьют. Ну правда.

Куда вы так спешите? В 25 — уже «бАльшой начальник», а в 30 — выгоревший, с пустыми глазами и отсутствием желания вообще что-то делать. Деньги? Да, хочется. Но их хочется всегда! Только лучше прийти к ним с опытом, крепкой психикой и осознанностью, чем на износе, полуживым и без удовольствия от жизни.

Амбиции — это хорошо, но если слишком тяжело выносить работу, могут и вынести вперёд ногами. А оно нам надо?

Быстрые взлёты только выглядят красиво. И психологам, кстати, выгодно — поток клиентов стабильный.

Отдыхайте, не геройствуйте — выходные уже на подходе! 🆒🆒🆒
04/04/2025, 17:20
t.me/analysts_world/235
Оплачиваемая стажировка аналитика 🔥

Международный банк набирает стажёров-аналитиков DWH. Вас ждёт опытный наставник, комфортный старт карьеры и практика SQL на реальных проектах.

Узнать подробности и составить резюме можно в боте.

⚡️ Перейти в бот⚡️
04/01/2025, 10:59
t.me/analysts_world/234
🔥 Тестовая задача по SQL! 🔥

На собеседованиях встречаются задачки, где нужно ранжировать данные, но без оконок RANK() и DENSE_RANK(). Как такое решать? Давайте разберём её шаг за шагом!

🏆 Задача:
Есть таблица с именами и баллами. Нужно проставить ранги участников в порядке убывания баллов без использования оконных функций.

import pandas as pd
import sqlite3
from pandasql import sqldf

# Данные для таблицы
data1 = {
'name': ['Владимир', 'Иван', 'Кирилл', 'Марк', 'Алексей', 'Максим'],
'score': [20, 16, 4, 7, 11, 18]
}
df = pd.DataFrame(data1)

query1 = """
SELECT
t1.name,
t1.score,
COUNT(t2.score) + 1 AS rank -- +1 потому что считаем количество строк с большим баллом
FROM df t1
LEFT JOIN df t2 ON t1.score < t2.score -- соединяем таблицы, чтобы сравнить баллы
GROUP BY t1.name -- группируем по имени
ORDER BY t1.score DESC; -- сортируем по убыванию баллов
"""

result = sqldf(query1)

Как это работает?
1️⃣ Соединяем таблицу (LEFT JOIN) саму с собой, чтобы сравнить баллы. Сравниваем каждую строку с другими, чтобы найти, у скольких участников балл выше.

2️⃣ Группировка (GROUP BY) – для каждого имени считаем, сколько раз его балл меньше других.

3️⃣ Ранжирование (COUNT + 1) – Чтобы не с нуля ранг был. Например если у участника балл меньше, чем у 2 других, его ранг будет 3 (т.к. он третий). Вот и готов порядок мест!

✅ Полезная и прикольная задачка. Тут и условие ON t1.score < t2.score помогает лучше понять как соединяются таблицы.
Умение решать такое "вручную" ценится.

🎯Попробуйте сами! Меняйте данные, добавляйте условия – это отличный способ закрепить знания.
03/31/2025, 12:51
t.me/analysts_world/233
Освойте продвинутые навыки работы с Битрикс24

Научитесь настраивать и управлять бизнес-процессами в системе Битрикс24 на открытом уроке «Построение логики запуска цепочек бизнес-процессов» от Otus

Рассмотрим ограничения и шаблоны бизнес-процессов Битрикс24

✅Практика: разберем сценарии запуска цепочки бизнес-процессов

Регистрация на урок 👇
https://otus.pw/3Wdo/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
03/27/2025, 12:05
t.me/analysts_world/232
📊 Как найти пользователей, покупающих новый тариф задолго до окончания старого?
Сегодня я хочу поделиться интересной задачей, с которой столкнулась в работе.
Нужно было найти пользователей, которые купили новый тариф до того, как закончился их текущий. Вот такое вот бывает, ага.
Давайте разберем, как это можно сделать с помощью Python и библиотеки Pandas. 🐼

1️⃣ Создание тестового DataFrame с данными о пользователях, их тарифах, датах заказа и окончания тарифов. 📝
import pandas as pd
data = {
'user_id': [1, 1, 2, 2, 3, 3],
'title': ['Тариф A', 'Тариф B', 'Тариф A', 'Тариф A', 'Тариф C', 'Тариф C'],
'дата заказа': pd.to_datetime(['2024-03-01', '2024-03-20', '2024-03-05', '2024-03-25', '2024-03-10', '2024-03-15']),
'finish_at': pd.to_datetime(['2024-04-01', '2024-05-01', '2024-04-02', '2024-04-30', '2024-04-10', '2024-05-10'])
}
df = pd.DataFrame(data)
2️⃣Сортировка данных: Сортируем по пользователю и дате заказа
df = df.sort_values(by=['user_id', 'дата заказа'])

3️⃣Использование функции shift:
Для каждого пользователя находим дату следующей покупки с помощью функции shift. Это позволяет нам сравнить дату окончания текущего тарифа с датой следующей покупки.
df['next_created_at'] = df.groupby('user_id')['дата заказа'].shift(-1)

4️⃣Вычисляем разницу в днях между окончанием текущего тарифа и следующей покупкой.
df['time_difference'] = (df['finish_at'] - df['next_created_at']).dt.days

5️⃣Проверка на изменение тарифа: Проверяем, что новый тариф отличается от старого. Для этого с помощью shift проставляем следующий тариф напротив текущего
df = df.copy()
df['next_title'] = df.groupby('user_id')['title'].shift(-1)

6️⃣Оставляем только тех пользователей, которые купили новый тариф задолго до окончания текущего (например, за 7 дней до окончания).
df_filtered = df[(df['time_difference'] > 7)]
df_filtered = df_filtered[df_filtered['title'] != df_filtered['next_title']]

Вот мы и нашли одного пользователя user_id=1, который меняет тариф c Тарифа А на Тариф B, не дожидаясь окончания первого.

Такой анализ можно применять для таргетированной рекламы, персонализированных предложений, ну и далее по списку..
Кто уже использовал shift() — жмем 🤝, кто взял на заметку — ✍️.
03/25/2025, 11:48
t.me/analysts_world/231
📚 Бесплатное приложение для любителей книг!

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

🔥 Скачать на Android

От команды:
"Мы верим, что хорошая книга должна увлекать с первых страниц. Поэтому сделали систему, которая подбирает книги именно под вас. Будем рады вам и вашим отзывам!"

В телеграме можно познакомиться с командой, следить за развитием и участвовать в тестировании.

🧐 А еще они написали классную статью на Хабр:

📌 "Где взять опыт в ИТ?" О том, как создать свой первый проект, с какими трудностями сталкиваются новички и что из этого выходит. Полезно и вдохновляюще!

Короче, рекомендую! 💡📖

P.S. А завтра разберем интересную рабочую задачу. Сегодня — читаем, завтра — кодим. Идеальный ведь баланс? 🤓🚀
03/24/2025, 17:44
t.me/analysts_world/230
Курс по ETL-разработке и оркестрации на базе Dagster и Apache Nifi

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

Что вас ожидает:

Глубокое погружение в Dagster: Изучите один из ключевых инструментов современной modern data stack, который завоевал популярность среди аналитиков и дата-инженеров по всему миру. Dagster дает больше гибкости и позволяет строить более сложные пайплайны.
Практические навыки: Решите более 60 задач из различных бизнес-сфер, которые станут частью вашего портфолио и усилят ваше резюме для международного рынка.
Современные технологии: Освойте работу с Software Defined Asset (SDA), IOManager, dbt, Docker, PostgreSQL и интеграцию с внешними API.
Автоматизация процессов: Научитесь создавать правила для автоматического получения и обработки данных, а также запускать Dagster в Docker для обеспечения гибкости и масштабируемости.

У тренажера доступен демо-доступ к где вы сразу приступаете к освоению Dagster на практике!

➡️ Получить демо-доступ

Реклама. Информация о рекламодателе
03/20/2025, 12:28
t.me/analysts_world/229
🎈 Два года, 4000 человек и неожиданный результат

✨ Друзья, нас уже больше 4000! 🎊 И для меня это просто невероятно!

Этот канал живёт без контент-плана — я пишу что хочу и когда хочу. ✏️ Это моё хобби, которое за два с лишним года превратилось в приятный источник дополнительного дохода. 💫 Когда я создавала канал чуть больше двух лет назад, даже не думала, что ко мне будут приходить рекламодатели. 🤯 Некоторых я отсеиваю, проверенных рекламирую, а кого-то — вообще бесплатно.

Помните, я писала модуль курса аналитики для SkillFactory? 📚 Меня пригласили туда благодаря этому каналу. Сейчас многие говорят про личный бренд, про то, что чем активнее ты в инфополе, тем больше возможностей к тебе приходит. И это правда!

Но ведь всё началось с простого желания выразиться. ✍️ Хотелось рассказать свои мысли, показать, что я умею, поделиться тем, как я к этому пришла. Я люблю цифры, но люблю и слово — ведь именно слово способно вдохновить… или, наоборот, сломать и обрубить крылья.🦋

И вообще спасибо, что вы здесь. 😊 За то, что читаете, комментируете, делитесь мыслями.❤️

Часто спрашивают: «Стоит ли заводить свой канал, если я ничего особенного не знаю и не умею?»
Отвечаю: ДА, стоит! 💚 Определённо стоит!

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

🚀 Так что, если у вас есть желание выразиться - дерзайте! Ваш уникальный голос может стать источником вдохновения для многих. 🌟
📡 А если у вас уже есть канал, пусть даже маленький – кидайте его в комментарии! Давайте поддерживать друг друга! 🌍🤗
03/14/2025, 11:03
t.me/analysts_world/228
Разбираем тестовое задание в Альфа Банк на позицию Junior Аналитика данных

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

Чтобы попрактиковаться в этом, приходите на бесплатный вебинар, где будем разбирать реальное тестовое задание, которое дают аналитикам в Альфа Банке.

Что будем делать на вебинаре:
🟠 Напишем сложные SQL-запросы для банковских данных;
🟠 Вспомним, как правильно использовать оконные функции;
🟠 Узнаем, как создавать разметку, из чего она состоит и для чего она нужна;
🟠 На реальных данных проведем когортный анализ и сделаем выводы;
🟠 Расскажем, как доставать инсайты из данных.

Вебинар проведет Денис Иванов, ведущий продуктовый аналитик

Зарегистрироваться на бесплатный вебинар
03/12/2025, 10:12
t.me/analysts_world/227
Подписчик прислал мне интересную задачку с stratascratch.com, и я не могла устоять, чтобы не решить её.
Нужно найти самый дешёвый путь между городами, учитывая варианты с пересадками (до двух).

📌 Дано:
Есть таблица da_flights, в которой:
✈️ origin – пункт отправления
✈️ destination – пункт назначения
✈️ cost – стоимость перелёта

Чтобы найти маршруты с пересадками, нам нужно соединить таблицу саму с собой (self-join).

🛠 Решение

1️⃣ Прямые рейсы (без пересадок) — просто берём origin, destination, cost.

2️⃣Рейсы с одной пересадкой — соединяем таблицу саму с собой (JOIN), где f1.destination = f2.origin. Это значит, что первый рейс прилетает в город, из которого отправляется второй.

3️⃣ Рейсы с двумя пересадками — соединяем таблицу трижды (JOIN), добавляя ещё один уровень соединения (f2.destination = f3.origin).

4️⃣Объединение всех маршрутов:
Используем UNION для объединения всех трех типов маршрутов (прямые, с одной и двумя пересадками).

5️⃣Группируем GROUP BY origin, destination и выбираем минимальную цену MIN(total_cost). Жаль нельзя по таким ценам реально на морюшко улететь 🌊🌊🌊

6️⃣Сортируем результат по городу отправления и городу назначения.

Создадим табличку с данными:
import pandas as pd
from pandasql import sqldf

data = {
'id': [1, 2, 3, 4, 5, 6],
'origin': ['SFO', 'SFO', 'SFO', 'DFW', 'DFW', 'JFK'],
'destination': ['JFK', 'DFW', 'MCO', 'MCO', 'JFK', 'LHR'],
'cost': [500, 200, 400, 100, 200, 1000]
}

da_flights = pd.DataFrame(data)
Ну и сам основной запрос:
query = """
SELECT
origin,
destination,
MIN(total_cost) AS min_price
FROM (
-- Прямые рейсы
SELECT origin, destination, cost AS total_cost
FROM da_flights
UNION
-- Рейсы с одной пересадкой
SELECT f1.origin, f2.destination, f1.cost + f2.cost AS total_cost
FROM da_flights f1
JOIN da_flights f2 ON f1.destination = f2.origin
UNION
-- Рейсы с двумя пересадками
SELECT f1.origin, f3.destination, f1.cost + f2.cost + f3.cost AS total_cost
FROM da_flights f1
JOIN da_flights f2 ON f1.destination = f2.origin
JOIN da_flights f3 ON f2.destination = f3.origin
) AS all_flights
GROUP BY origin, destination
ORDER BY origin, destination
"""

result = sqldf(query)
print(result)

Большое решение, но если по частям разобрать, то разобраться проще. Для этого вот вам ноутбук с этим скриптом. экспериментируйте!
Ну и всем отдыха на море в этом году! 🏖🏖🐠🌊
03/11/2025, 14:18
t.me/analysts_world/226
⚡ Для вас подготовили уникальное предложение — папку с более чем 40 статьями от ведущих экспертов, которые шаг за шагом проведут вас в мир IT-технологий.

🧑‍💻 Собрали в одну папку более 40 Telegram-каналов от известных экспертов в сфере информационных технологий, начиная от тестирования, базы данных и разработки до автоматизации процессов с помощью искусственного интеллекта. В этой папке вы получите ответы на такие вопросы, как:

🟠 Как автоматизировать процессы с помощью ИИ?
🟠 Какие профессии может заменить ИИ?
🟠 Как читать много каналов с помощью ИИ: делаем сводку любимых каналов с помощью no-code, доступно каждому?
🟠 Чек-лист правил супероффера для клиента.
🟠 Как оптимизировать SQL запрос в базу данных?

📎Делимся с вами исследованием тонкостей LEFT JOIN: условия в ON или WHERE — в чем разница?

📌 Сохранив папку «IT - ЛЕГКО», вы получите доступ ко всем каналам с уникальными авторскими материалами, которые несомненно будут полезны в работе.
03/11/2025, 08:10
t.me/analysts_world/225
⚡ Для вас подготовили уникальное предложение — папку с более чем 40 статьями от ведущих экспертов, которые шаг за шагом проведут вас в мир IT-технологий.

🧑‍💻 Собрали в одну папку более 40 Telegram-каналов от известных экспертов в сфере информационных технологий, начиная от тестирования, базы данных и разработки до автоматизации процессов с помощью искусственного интеллекта. В этой папке вы получите ответы на такие вопросы, как:

🟠 Как автоматизировать процессы с помощью ИИ?
🟠 Какие профессии может заменить ИИ?
🟠 Как читать много каналов с помощью ИИ: делаем сводку любимых каналов с помощью no-code, доступно каждому?
🟠 Чек-лист правил супероффера для клиента.
🟠 Как оптимизировать SQL запрос в базу данных?

📎Делимся с вами исследованием тонкостей LEFT JOIN: условия в ON или WHERE — в чем разница?

📌 Сохранив папку «IT - ЛЕГКО», вы получите доступ ко всем каналам с уникальными авторскими материалами, которые несомненно будут полезны в работе.
03/11/2025, 08:04
t.me/analysts_world/224
Подъехало исследование по 2024! Смотрим, изучаем, анализируем. 📈📊
03/07/2025, 14:47
t.me/analysts_world/222
🔥 Исследование рынка аналитиков 2024: полные результаты

Мы опросили 1293 аналитиков 6-ти специализаций и готовы рассказать вам:

Какие задачи решают аналитики

Что с релокацией у аналитиков

Сколько зарабатывают аналитики

ТОП и анти-ТОП компаний для аналитиков

Что ценят в аналитической культуре

За какими экспертами следят аналитики

Будем рады, если вы поделитесь результатами исследования с коллегами, знакомыми, друзьями аналитиками и всеми, кому может быть интересно 🫶

👉 Смотреть полные результаты

Все, кто принял участие в нашем исследовании и оставлял почту, проверьте её! От нас должно прийти письмо с приглашением на закрытый стрим для респондентов 🙏

💙 Команда NEWHR анализирует IT-рынок в России и других странах. Мы делаем публичные и заказные исследования для компаний (смотреть примеры). Будем рады сделать исследование вместе с вами.

📨 Пишите на почту data@new.hr
03/07/2025, 14:47
t.me/analysts_world/223
👍 Решила задачку уровня Hard на LeetCode! Department Top Three Salaries

Полистала я список задач из блока SQL 50 на LeetCode и наткнулась на одну единственную задачку уровня hard. Решила проверить свои силы и решить ее. Задача относится к уровню Hard. Давайте разберем, что нужно было сделать и как я с этим справилась. 💼💡

📝 Условие задачи:
У нас есть две таблицы:

1️⃣Employee с колонками: id, name, salary, departmentId.

2️⃣Department с колонками: id, name.

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

Для решения задачи я использовала SQL с функцией DENSE_RANK(), которая позволяет ранжировать сотрудников по зарплате внутри каждого департамента. Решала тестировала в юпитере. Вот как это выглядит:

import pandas as pd
from pandasql import sqldf
employee_data = {
'id': [1, 2, 3, 4, 5, 6, 7],
'name': ['Joe', 'Henry', 'Sam', 'Max', 'Janet', 'Randy', 'Will'],
'salary': [85000, 80000, 60000, 90000, 69000, 85000, 70000],
'departmentId': [1, 2, 2, 1, 1, 1, 1]
}

Employee = pd.DataFrame(employee_data)

department_data = {
'id': [1, 2],
'name': ['IT', 'Sales']
}

Department = pd.DataFrame(department_data)
Я покрутила данные и так и так и поняла, что мне проще сделать с оконкой такое задание. Можно и подзапросом конечно решить, но на мой взгляд оконка тут просто идеально подходит.
query = """
select Department,Employee,Salary
from
(SELECT d.name as Department,
e.name as Employee,
salary as Salary,
dense_rank() OVER (PARTITION BY d.name order by salary desc) as rank
FROM Employee AS e
LEFT JOIN Department d on d.id=e.departmentId
order by d.id, salary desc
)
where rank <=3
"""
sqldf(query)

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

💡PARTITION BY d.name группирует данные по департаментам.

💡ORDER BY salary DESC сортирует зарплаты по убыванию.

В итоге мы выбираем только те строки, где ранг меньше или равен 3.

Дайте знать если в таких задачках вам нужен файл юпитерский сразу с кодом. Буду прикреплять тогда.

P.S. Кстати за прошлую неделю я выдала медали в нашем рейтинге. 🥇🥈🥉Заглядывайте и присоединяйтесь!
03/06/2025, 12:28
t.me/analysts_world/221
🔥Представляю Вам новую коллекцию каналов на тему "IT"! 🔥

Тут собраны самые полезные ресурсы, которые помогут быстро находить нужные ответы и углублять свои знания в области IT и ТЕХНОЛОГИЙ 💻

💡Что вас ожидает?

• Рекомендации от профессионалов.

• Полезные инструменты и методики.

• Практические советы и инсайты.


☑️Переходите по ссылке и начинайте уже сегодня! 👇

https://t.me/addlist/RqqAA_68fONkNjcy
03/04/2025, 17:04
t.me/analysts_world/220
🚀 Каждый день вы тратите часы на рутину: согласование, обработку заявок, контроль задач. Но ведь все эти процессы можно автоматизировать!

На открытом вебинаре «Бизнес-процессы в Битрикс24» разберем, как внедрить автоматизацию, ускорить работу компании и снизить влияние человеческого фактора.

Вы узнаете, какие бизнес-процессы можно автоматизировать, как правильно их настраивать и внедрять без сложного программирования. Битрикс24 станет вашим помощником, а не головной болью.

⭐️ Спикер Владимир Румянцев — соучредитель и технический директор студии Автоматизации Виноград24. Сертифицированный специалист 1С, 1С-Битрикс24.

Встречаемся 6 марта в 19:00 мск! Урок пройдет в преддверии старта курса «Интегратор Битрикс24», и все участники получат скидку на обучение.

👉 Регистрируйтесь, чтобы не пропустить: https://otus.pw/qaqQ/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
03/04/2025, 12:06
t.me/analysts_world/219
🚀 Каждый день вы тратите часы на рутину: согласование, обработку заявок, контроль задач. Но ведь все эти процессы можно автоматизировать!

На открытом вебинаре «Бизнес-процессы в Битрикс24» разберем, как внедрить автоматизацию, ускорить работу компании и снизить влияние человеческого фактора.

Вы узнаете, какие бизнес-процессы можно автоматизировать, как правильно их настраивать и внедрять без сложного программирования. Битрикс24 станет вашим помощником, а не головной болью.

⭐️ Спикер Владимир Румянцев — соучредитель и технический директор студии Автоматизации Виноград24. Сертифицированный специалист 1С, 1С-Битрикс24.

Встречаемся 6 марта в 19:00 мск! Урок пройдет в преддверии старта курса «Интегратор Битрикс24», и все участники получат скидку на обучение.

👉 Регистрируйтесь, чтобы не пропустить: https://otus.pw/qaqQ/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
03/04/2025, 12:03
t.me/analysts_world/218
🏆 Кто будет первым в рейтинге?🏆
Я немного запустила нашу табличку мотивации… В том смысле, что сама исправно ставлю свои галочки ✔️, но вот новых мотивационных картинок уже больше недели никому не раздавала. И тут мне написали об этом – с сожалением!

И знаете, это меня замотивировало 🤪!

Теперь у нас появился новый лист — Рейтинг 📊. В нём автоматически собираются данные о количестве выполненных задач за неделю и за весь период. Всё считается формулой, которая мне самой показалась довольно прикольной:

📌 СЧЁТЕСЛИ(ДВССЫЛ("'" & A5 & "'!AY:BE"); "✔️")

🍀 Как это работает?
🔹A5 — ячейка с названием личного листа.

🔹ДВССЫЛ("'" & A3 & "'!A:ZZ") — подставляет название листа и диапазон всех колонок A:ZZ. INDIRECT (в английской версии)

🔹СЧЁТЕСЛИ(..., "✔️") — подсчитывает количество галочек по всему листу!

💡 А я, кстати, даже не знала, что можно считать не только цифры, но и эмодзи!

А теперь к самому важному — кто молодцы? 💪
🔥 Кирилл Н, Ира idhril, Валерия Б, Владимир, Лера (не я, другая!) — вы большие умницы! Вы запланировали, чему хотите научиться, и уверенно идёте к своей цели.

❗️ Мотивация — это не про «пересилить себя». Не нужно делать через силу. Главное — желание, а поддержка и вдохновение от других сделают своё дело. В этом и есть уникальность проекта.

Открыта ко всем предложениям по улучшению. Вот думаю, может медальки отрисовать красивые и в конце недели раздавать первые места? Как Вам идея?

P.S. Если вдруг пропустили, о чем вообще речь, вот тут и тут про наши мотивационные таблички. Заглядывайте — возможно, это как раз то, чего вам не хватало для продуктивности! 😉
02/27/2025, 11:53
t.me/analysts_world/217
Как стать аналитиком и не сдаться на пути

Я часто вижу сообщения от тех, кто только планирует войти в мир аналитики или делает первые шаги. Звучат они они примерно так:
😶 Я гуманитарий, и мне кажется, аналитика — это не для меня…
😶 Смотрю на программу обучения, и всё кажется таким сложным, боюсь, что ничего не пойму.
😶 Мне уже за 30, смогу ли я переучиться и, главное, найти работу после этого?
😶 Не знаю, с чего начать: SQL, Python, метрики?
😶 Столкнулся со сложной темой, потерял мотивацию и веру в свои силы 🙁

Все эти сообщения объединяет одно — растерянность и сомнения в своих силах. Знакомо?

О том, как отправляться в путь к новой профессии поговорим на вебинаре 25 февраля в 19:00 по мск на тему «Как стать аналитиком и не сдаться на пути».

Спикер — Владимир Камчаткин, тимлид продуктовой аналитики образовательной платформы Т-Банка, более 3 лет работы в образовании, автор тг-канала Data New Gold

На вебинаре обсудим:
🟠Какие сложности возникали у Владимира и как он их преодолевал;
🟠Как ставить цели, планировать обучение и выбирать качественные ресурсы;
🟠Как совмещать обучение с работой;
🟠Применение нейронауки и психологии для повышения эффективности запоминания;
🟠Ответы на вопросы участников вебинара.

Зарегистрироваться на бесплатный вебинар
02/24/2025, 13:47
t.me/analysts_world/216
Ребята, привет! 👋

Наверняка многие из вас знают Пашу Бухтика и его канал No Data No Growth. Уже 10 марта у него стартует курс по A/B-тестированию!
📢 Вот его пост с подробностями: https://t.me/nodatanogrowth/730

🎁 Для вас есть 5% скидка – просто скажите, что вы «от Валерии / мира аналитики данных».
Это не реклама (она будет позже 😜), просто я сама иду на курс и зову вас с собой! 🚀
02/24/2025, 10:36
t.me/analysts_world/215
Друзья, иногда трудно бывает найти какие-то интересные новые каналы со всякими полезностями. В этой папке 🔝 вы найдете каналы по: ИТ, ТЕХНОЛОГИЯМ И ИГРАМ.
🎯 https://t.me/addlist/74yhTlKg8_00YWYy

Здесь вас ждут ответы на многие вопросы и множество интересного контента. 💪🤪
02/14/2025, 16:06
t.me/analysts_world/214
👍 Задачка с LeetCode. Расчет коэффициента подтверждения

🔍 Пришло время для следующей задачки с LeetCode.

У нас есть две таблицы:
Signups — информация о регистрации пользователей:
- user_id — уникальный идентификатор пользователя.
- time_stamp — время регистрации.

и Confirmations — информация о подтверждении действий пользователей:
- user_id — идентификатор пользователя.
- time_stamp — время подтверждения.
- action — результат действия (confirmed или timeout).

🌟Нужно: Посчитать коэффициент подтверждения для каждого пользователя — это доля успешных подтверждений (confirmed) от общего числа запросов. Если у пользователя не было запросов, коэффициент равен 0. Результат округляем до двух знаков после запятой.

Задачка уровня Middle. Вроде не сложная, но самое смешное, что я больше намучалась с округлением ROUND. В Юпитере же мы используем pandasql, а тут на сайте нужно Postgresql. Но обо всем поподробнее.

Сначала создадим тестовые данные:
import pandas as pd

signups_data = {
'user_id': [3, 7, 2, 6],
'time_stamp': [
'2020-03-21 10:16:13',
'2020-01-04 13:57:59',
'2020-07-29 23:09:44',
'2020-12-09 10:39:37'
]
}
signups = pd.DataFrame(signups_data)

confirmations_data = {
'user_id': [3, 3, 7, 7, 7, 2, 2],
'time_stamp': [
'2021-01-06 03:30:46',
'2021-07-14 14:00:00',
'2021-06-12 11:57:29',
'2021-06-13 12:58:28',
'2021-06-14 13:59:27',
'2021-01-22 00:00:00',
'2021-02-28 23:59:59'
],
'action': [
'timeout',
'timeout',
'confirmed',
'confirmed',
'confirmed',
'confirmed',
'timeout'
]
}
confirmations = pd.DataFrame(confirmations_data)
#Финальный запрос для LeetCode выглядит так:
SELECT
tt.user_id,
ROUND(count_confirmed::NUMERIC / count_all, 2) AS confirmation_rate
FROM (
SELECT
sd.user_id,
COUNT(*) FILTER (WHERE action = 'confirmed') AS count_confirmed,
COUNT(*) AS count_all
FROM signups sd
LEFT JOIN confirmations cd
ON cd.user_id = sd.user_id
GROUP BY 1
) tt;

А вот в Юпитере вместо ROUND(count_confirmed::NUMERIC / count_all, 2) AS confirmation_rate нужно сделать по другому: round(cast(count_confirmed AS FLOAT)/count_all,2) AS confirmation_rate.

✅ Объяснение скрипта
1️⃣. Вложенный запрос:
Считаем общее количество запросов (count_all) и подтвержденных действий (count_confirmed) для каждого пользователя.
Применяем FILTER для выделения только действий confirmed. Можно было и простым where обойтись, но это скучнее, вот и повыпендриваться захотелось. 🤪

2️⃣ Основной запрос:
Делим count_confirmed на count_all для каждого пользователя.
Используем многострадальный ROUND для округления результата до двух знаков после запятой. В случае юпитера через cast для приведения count_confirmed к типу FLOAT перед делением. В случае Leetcode - к типу FLOAT приводим через ::NUMERIC
Теперь деление будет выполняться в дробных числах, а не в целых.

А еще отвлекающий маневр - колонка time_stamp в таблице Signups. Она тут не нужна, но зачем-то есть. Не люблю лишние данные в задачках 😜

✨ Итог
Этот запрос поможет отработать ключевые SQL-концепции, такие как FILTER, LEFT JOIN и группировка, а также построить наглядный расчет метрик.

✅ Попробуйте сами — это отличная практика!
02/14/2025, 15:36
t.me/analysts_world/213
Как начинающему аналитику выдержать конкуренцию на рынке и успешно получить первый оффер?

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

Сейчас компании часто предпочитают брать многоруких-многоногов, которые уже нарешали большое количество пет-проектов и потрогали смежные сферы: дата-инженерии, BI и тд.

В Simulative учат аналитиков быть сразу такими — максимально полезными бизнесу. В итоге обучения у вас будет портфолио из 25+ уникальных реальных рабочих проектов и необходимые навыки в смежных направлениях.

Кроме того, там не просто помогут с трудоустройством, у вас будет персональный ментор и HR, которые вместе с вами пройдут путь до оффера: будут гонять вас по собеседованиям, искать точки роста на всех этапах вашего поиска работы, пока не получите заветный оффер.

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

Уже совсем скоро стартует новый поток
Оставляйте заявку, чтобы узнать все подробности

Кстати, как приятный бонус — часть оплаты за обучение берут только после получения оффера!
А по промокоду Analysts_world дарят еще скидку 10%

Реклама. ООО АЙТИ РЕЗЮМЕ. ИНН 4025460134
02/11/2025, 11:08
t.me/analysts_world/212
👍 Задачка с LeetCode. Найти имя менеджера, у которого 5 или больше подчиненных.
Все знают, что решать задачи на LeetCode полезно как для прокачки мозга, так и для подготовки к собеседованиям. Но времени на это хватает не всегда, а вот разобраться, что там вообще решается, хочется. Поэтому я решила делиться с вами готовыми решениями! Сегодня у нас задача уровня Medium — разберем вместе (вот она).

Чтобы можно было потестить решение, напишу его с помощью библиотеки pandasql в Jupyter Notebook. Библиотека позволяет выполнять SQL-запросы прямо в Юпитере, а вместо базы можно просто создавать DataFrame.

Итак, в этом задании требуется написать SQL-запрос, чтобы найти всех менеджеров, у которых как минимум 5 прямых подчиненных.
Таблица Employee:
id : первичный ключ (уникальный идентификатор сотрудника).
name : имя сотрудника.
department : департамент сотрудника.
managerId : id менеджера этого сотрудника.

Если managerId равен NULL, значит у сотрудника нет менеджера, то есть он и есть шеф.
Никакой сотрудник не будет являться своим собственным менеджером.

Мы видим, что у менеджера с id = 101 (John) есть 5 подчиненных: Dan, James, Amy, Anne и Ron.
Его (John) нам и нужно получить в ответе.

1️⃣Создаем данные для дальнейшего тестирования кода. В data записаны сотрудники, их id, департамент и id их менеджеров. Преобразуем это в DataFrame.
import pandas as pd
from pandasql import sqldf

data = {
"id": [101, 102, 103, 104, 105, 106],
"name": ["John", "Dan", "James", "Amy", "Anne", "Ron"],
"department": ["A", "A", "A", "A", "A", "B"],
"managerId": [None, 101, 101, 101, 101, 101]
}
employee = pd.DataFrame(data)
2️⃣SQL-решение:

🔹Вложенный SQL-запрос:
- Сначала группируем сотрудников по managerId, чтобы можно было посчитать их кол-во.
- Оставляем только тех менеджеров, у которых 5 или больше подчиненных.

🔹Внешний запрос:
- Находим имена этих менеджеров по их id.

3️⃣Получаем имя менеджера, у которого 5 или больше подчиненных.
query = """
SELECT name
FROM employee
WHERE id in (
SELECT managerId
FROM employee
GROUP BY managerId
HAVING COUNT(*) >= 5
)
"""
sqldf(query)

Это задание помогает разобраться, как использовать группировку (GROUP BY) и фильтрацию с HAVING. Эти навыки часто нужны в реальной работе.

✅ Если вам такой разбор понравился, накидайте реакции! Буду разбирать задачки с LeetCode дальше. ✨🚀
02/03/2025, 12:14
t.me/analysts_world/211
Как прокачать самый главный навык аналитика

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

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

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

И как раз про это будет рассказывать Андрон Алексанян на своем вебинаре «Как прокачать самый главный навык аналитика» 🔥

Вебинар пройдет завтра, 29 января, в 19:00 Мск. Регистрация — по ссылке.

Андрон прошел большой путь в аналитике и ему точно есть, чем поделиться. Он более 5 раз отстраивал аналитику в компаниях с нуля, а сейчас развивает быстрорастущую школу аналитики данных Simulative и консультирует крупные компании.

В общем, если «прокачать продуктовое мышление» для вас актуально — обязательно приходите на вебинар, будет полезно 👉🏻 ссылка.

Реклама. ООО АЙТИ РЕЗЮМЕ. ИНН 4025460134.
01/28/2025, 13:10
t.me/analysts_world/210
Search results are limited to 100 messages.
Some features are available to premium users only.
You need to buy subscription to use them.
Filter
Message type
Similar message chronology:
Newest first
Similar messages not found
Messages
Find similar avatars
Channels 0
High
Title
Subscribers
No results match your search criteria