Дима SQL-ит 🧑‍💻 (Аналитика данных)
1.29K subscribers
18 photos
2 videos
64 links
👨‍💻 Блог аналитика данных в IT

📩 По менторству и сотрудничеству: @catdem
Download Telegram
🗒 Как посчитать произведение в SQL, если есть только SUM — разберем задачу с собеседования:

Иногда на собеседовании спрашивают:
"Вот у тебя есть таблица транзакций за день. Для каждого дня посчитай произведение значений. Что будешь делать?"

Это решается чисто через математику и стандартные агрегаты. Сейчас разберёмся по шагам.

Представим таблицу transactions:
| tx_date    | value |
|------------|-------|
| 2025-10-01 | 2 |
| 2025-10-01 | 3 |
| 2025-10-01 | 5 |
| 2025-10-02 | 4 |
| 2025-10-02 | 2 |


Задача: для каждого дня посчитать произведение всех value.
То есть:
• для 2025-10-01 должно получиться 2⋅3⋅5=30
• для 2025-10-02 должно получиться 4⋅2=8
Как из суммы сделать произведение? 🧠

Вспоминаем школьную математику:
• log(a⋅b)=log(a)+log(b)

Переводя на человеческий язык, чтобы получить произведение, можно:
• взять логарифм каждого числа
• сложить
• применить экспоненту и получить итоговый результат

Решение в SQL 🔵
SELECT
tx_date,
EXP(SUM(LN(value))) AS product_value
FROM transactions
GROUP BY tx_date
ORDER BY tx_date;


Что тут происходит:
• LN(value) — считаем натуральный логарифм каждого значения.
• SUM(LN(value)) — агрегируем по дню.
• EXP(...) — возвращаемся из логарифмического мира к исходному числу.
В итоге получаем то самое произведение.

Важные нюансы, о которых любят спрашивать 🧐
1️⃣Нули:
• Если есть хотя бы один 0, то произведение за день должно быть 0.
• Но ln(0) не существует — будет ошибка.
• Как обойти:
— либо заранее проверять наличие нулей
— либо аккуратно обрабатывать условием

2️⃣Отрицательные значения:
• ln(x) определён только для x>0.
• Если в данных возможны отрицательные значения — задача усложняется:
— нужно отдельно считать знак (чётность количества отрицательных)
— логарифм брать от модуля
— восстанавливать знак в конце.
• На собеседованиях чаще всего ожидают решение для положительных чисел и аккуратную оговорку про этот кейс — если вы про него скажете, это плюс.

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

🍸 Если вы нашли пост для себя полезным, то накидывайте реакций, чтобы я понимал, что вам эта тема интересна!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

Сталкивались с задачами на "продвинутые" агрегаты в SQL (медиана, произведение, перцентили)? Пишите в комментариях, что вызывало сложности — постараюсь разобрать в следующих постах.
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🐳943❤‍🔥22
📚 Бесплатные материалы для изучения статистики и проведения A/B тестов:

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

Я собрал видеокурсы и книги, которые можно найти в интернете абсолютно бесплатно и делюсь с вами, чтобы вы могли себе сохранить этот список:

Видеокурсы (видеоматериалы): 🔵
1) Основы статистики Ч.1 и Основы статистики Ч.2
2) Бесплатный курс «Основы статистики и A/B-тестирования»
3) Интенсив A/B Week от Яндекса
4) Вероятность и статистика с Глебом Михайловым
5) Введение в статистику от SophiStat
6) Прикладная статистика от Академии Аналитиков Авито

Книги: 🔵
1) Владимир Савельев — Статистика и котики
2) Дарелл Хафф — Как лгать при помощи статистики
3) Эндрю Сигел — Практическая бизнес-статистика
4) Чарльз Уилан — Голая стаистика
5) Сара Бослаф — Статистика для всех

Итог:

🍸 Если хотите, чтобы я собрал аналогичную подборку по Python, SQL или другим темам, напишите об этом в комментариях!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

Пользовались какими-то из этих материалов? Что бы добавили в подборку?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤‍🔥28🔥841
💯 SQL-лайфхаки — номера в GROUP BY и как избежать целых чисел в расчётах при делении:

Группировка в SQL: по именам и по номерам столбцов 🔵
В SQL при группировке часто повторяешь длинные названия столбцов. Можно проще — использовать номера столбцов из списка SELECT.

Пример с именами столбцов:
SELECT order_date, customer_city, COUNT(*)
FROM orders
GROUP BY order_date, customer_city


То же самое с номерами столбцов:
SELECT order_date, customer_city, COUNT(*)
FROM orders
GROUP BY 1, 2 -- 1 и 2 — это первый и второй столбцы в SELECT

Так код короче и удобнее править, особенно если поле одно или много.

Правильное деление: избегаем целочисленного деления 🔵
SQL часто делит целые числа и отбрасывает дроби — 5/2 = 2, а не 2.5. Чтобы получить правильный процент, нужно привести числитель или знаменатель к дробному типу.

Способы:
• Умножить числитель на 100.0 (не на 100, а именно с точкой)
• Привести к float (через CAST)

Пример:
SELECT
category,
SUM(sales) AS total_sales,
SUM(sales) * 100.0 / SUM(all_sales) AS percent -- 100.0 заставит SQL считать дроби
FROM sales
GROUP BY category


Или через CAST:
SELECT
category,
SUM(sales) AS total_sales,
CAST(SUM(sales) * 100 AS DECIMAL(5,2)) / SUM(all_sales) AS percent
FROM sales
GROUP BY category


Итог:
Группировка по номерам столбцов (GROUP BY 1, 2) и явное указание дробного типа при делении (100.0 вместо 100 или через CAST) — два простых приёма, которые экономят время и избавляют от ошибок. Номера столбцов делают код компактнее и удобнее для правок, а правильное деление гарантирует точные проценты и метрики.

🍸 Если зашло, кидайте реакции — пойму, что SQL-трюки нужны!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

Знали об этих приёмах раньше или только сейчас узнали? Используете GROUP BY с номерами в работе? Делитесь опытом в комментариях!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥30🐳63❤‍🔥1
🤩 Как создать универсальный скрипт в Python, чтобы не перекладывать его между проектами:

Привет!
У всех бывала ситуация: один и тот же скрипт (типа подключения к БД) перекочевывает из проекта в проект. А потом хост меняется или параметры — и бегаешь по всем файлам править. Звучит знакомо? Есть идея получше: создадим свой модуль, который импортируется в любом проекте. Один раз обновил — везде сработало. Разберём на примере с подключением к PostgreSQL, но подойдёт для любых задач.

Представим модуль
connections.py

с функцией подключения:
# connections.py
pg_url = 'postgresql://user:pass@old_host/db'

def connect_db():
import psycopg2
return psycopg2.connect(pg_url)

Чтобы импортировать, файл должен лежать в проекте. Но давайте сделаем универсально: положим его в общую папку и используем sys.path.append. Это добавит путь в список поиска модулей Python — и импорт заработает везде.

Шаги: 🔵
1️⃣ Создайте папку, например: /home/dima_sqlit/modules, и перенесите туда
connections.py

2️⃣ В любом проекте добавим путь и импортируем:
import sys
sys.path.append('/home/dima_sqlit/modules') # Ваш путь к общей папке

from connections import connect_db

conn = connect_db()
cursor = conn.cursor()
cursor.execute("SELECT * FROM data LIMIT 10")
data = cursor.fetchall() # Готово для анализа!


3️⃣ Тестируем: Изменили хост в модуле — перезапустили скрипты в проектах. Всё подхватило автоматически, без правок в каждом файле. Красота!

Итог:
Универсальный скрипт — один файл, импорт везде, обновления без хлопот. Идеально для утилит, которые часто применяются.
Внедрите — сэкономите часы своего времени!

🍸 Если зашло, кидайте реакции — пойму, что Python-трюки нужны!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

Как вы храните общие скрипты — копипастите или централизованно? Делитесь в комментариях!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28❤‍🔥5🐳431
👍Матемарткетинг - мой первый раз. День 1:

Сегодня мой первый раз, как я побывал на Матемаркетинге.

Что успел сделать:🔵

• Посмотреть несколько выступлений (ниже написал, какое зашло больше всего)
• Набрать мерча и походить по стендам (смотрим фото в комментариях)
• Пообщаться
• И просто хорошо провести время 🍆

Какое выступление зашло больше всего? 🔵

Выступление Алёны Артемьевой с темой "Как рационально использовать нерациональное поведение клиентов и повысить эффективность маркетинга, продукта и продаж".

Почему именно оно:
• Мысли которые доносила Алёна я тоже разделяю, она говорила о том, что аналитикам нужно изучать психологию, чтобы понимать, как люди принимают решение.
• Она рассказала про когнитивные искажения, про то, что человеческий мозг не любит тяжелые системы и именно по этому когда люди видят большой выбор теряются. Лучше сделать маленький ассортимент, а не раздувать предложения.
• Про легкость восприятия тоже согласен. Продукт должен быть интуитивно понятным, так человек видит легкость и скорее купит, чем нет.
• Ну и показ случаев, когда мы ловим когнитивные искажения и как они влияют на наш выбор, например, какой текст вас цепляет больше:
— 80% наших пользователей ощутили результат уже в первую неделю.
— только 20% пользователей не ощутили на себе никаких изменений в первую неделю.

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

Завтра будет второй день, посмотрим, что будет еще интересного) ⚪️


Ну и отдельное спасибо моей компании за предоставленную возможность 🛒

🍸 Кидайте реакции — пойму, что лайф вам тоже интересен!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

А вы были на МатеМаркетинге или других конференциях? Поделитесь в комментариях
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🐳642
📊 Бесплатные материалы для изучения визуализации данных:

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

Я собрал набор видеокурсов и книг, которые можно найти в открытом доступе. Сохраняйте себе, чтобы не потерять 👇


Видеокурсы (видеоматериалы): 🔵

Python (matplotlib):
1) Практикум по математике и Python
2) Deep Learning (семестр 1, осень 2025)
3) Готовые notebook на kaggle

Системы BI:
1) DataLens: анализ и визуализация данных
2) Симулятор SQL (от Карпова) [там есть отдельный блок про визуализацию в Redash]


Excel:
1) БАЗА. Основы визуализации данных в Excel

Книги:
1) Графики, которые убеждают всех (Александр Богачёв)

🤔 Подборку бесплатных материалов по статистике смотрите в этом посте

Итог:

🍸 Если хотите, могу собрать аналогичные подборки по Python, SQL или другим темам — просто напишите в комментариях!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

Пользовались ли вы этими материалами? Что посоветуете добавить?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤‍🔥105
📚 Бесплатные материалы для изучения SQL — от азов до продвинутых тем:

Продолжаю делиться бесплатными материалами.
Сегодня на очереди SQL.

Видеокурсы (видеоматериалы): 🔵

1) Интерактивный тренажер по SQL
2) Симулятор SQL (от Карпова)
3) ClickHouse с нуля (Курс - чтобы понять особенности ClickHouse от других СУБД)
4) Тестовые по SQL (Глеб Михайлов) [для насмотренности]
5) Бесплатный курс «Основы SQL» (от Simulative)

Итог:

🍸 По каким инструментам вам хочется увидеть ещё бесплатные подборки? Просто напишите в комментариях!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

Пользовались ли вы этими материалами? Что ещё добавить в подборку?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1910❤‍🔥4🐳3
⚡️ Как ускорить ad-hoc аналитику с помощью Streamlit:

В ад-хоке мы часто делаем одно и то же: выгрузили данные → отфильтровали → построили график → отправили.
Каждый раз заново.
И именно на это уходит больше всего времени.

Python позволяет автоматизировать почти любую рутину, но запуск скриптов — это всегда не самый удобный формат. Что если сделать проще: добавить к вашему Python-коду фильтры, селекторы, кнопки и всё это завернуть в аккуратный UI?

Streamlit ровно для этого и нужен — он позволяет превращать обычный код в небольшой аналитический инструмент, который экономит время и ускоряет ad-hoc аналитику без BI-систем

Если вы ещё не пробовали, я нашёл одно максимально понятное видео, которое позволит быстро освоить данный инструмент 👇

🟢 Видео здесь

Что полезного разберёте:
• как запустить Streamlit и превратить скрипт в веб-интерфейс
• как добавить кнопки, селекторы
• как выводить графики
• как бесплатно задеплоить инструмент в общий доступ
• прийдет понимание как использовать Streamlit именно для аналитики


Итог:
Streamlit — отличный способ перестать делать ad-hoc «вручную» и собрать быстрый инструмент под любую задачу.
Видео — хороший старт, сохранить точно стоит.

🎁 Бонус:
Оставил вам готовый Python-файл и CSV-пример, чтобы вы могли сразу попробовать Streamlit и повторить инструмент с картинки из поста (смотрим комментарии и ставим много реакций).

🍸 Если формат быстрых разборов инструментов вам заходит — накидайте реакций!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

Уже делали свои Streamlit-инструменты? Расскажите!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤‍🔥1031
🐍 Бесплатные материалы для изучения Python — базовый минимум для аналитики:

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

Курсы по Python:
1) Поколение Python: курс для начинающих
2) Поколение Python: курс для продвинутых
3) Бесплатный курс по Pandas (от Simulative)
4) Анализ Данных на Python и Pandas (Глеб Михайлов)

Итог:

🍸 Вроде рассмотрел все что просили или есть еще какие-то предложения? Напишите в комментариях!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

Пользовались ли вы этими материалами? Что посоветуете добавить?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤‍🔥8🐳3
🗒 Оптимизация SQL запросов: что такое партиции и индексы простыми словами. Часть 1

На собеседованиях часто спрашивают:
«Какие методы оптимизации SQL-запросов вы знаете?»

И спрашивают не зря. При работе с большими объёмами данных с этим сталкиваешься постоянно. В этом посте разберём базовые вещи — что такое партиционирование и индексирование и как они работают на уровне идеи. Практические примеры будут во второй части.

1) Что такое партиции? 🟢
• Представим таблицу, в которой хранятся списания клиентов банка. Объём данных там огромный. Часто кажется, что достаточно просто написать фильтр по дате, и всё будет быстро. Но если таблица большая, SQL начнёт читать её целиком — строка за строкой, проверяя условие у каждой записи. Это полный скан таблицы, и он дорогой.

• Теперь представим жизненный пример. У вас есть тысячи фотографий. Обычно люди раскладывают их по годам. И если нужно посмотреть фотографии за конкретный год, вы не открываете все остальные — сразу идёте в нужную папку и экономите время.

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

2) Что такое индексы? 🟢
• Продолжим аналогию с фотографиями. Мы уже разложили фото по годам — стало быстрее. Но допустим, в одном году фотографий всё равно очень много, и мы хотим найти конкретные — например, с дня рождения.

• Было бы удобно иметь файл с описанием, где написано:
фото 1–10 — путешествие
фото 20–25 — день рождения
фото 40–50 — работа
По сути, это содержание книги. Именно так работают индексы.

• Индекс — это отдельная структура, которая хранит значения столбца и знает, где физически лежат строки с этими значениями. Когда в запросе используется условие в WHERE или JOIN, база данных сначала смотрит в индекс, а затем читает только нужные строки, а не всю таблицу.

• Важно понимать: индекс не уменьшает объём данных, он ускоряет поиск внутри них.

3) Партиции и индексы вместе: 🟢
• Теперь картинка складывается полностью.
Партиционирование помогает не читать лишние данные.
Индексы помогают быстро находить нужные строки.

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

Итог:

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

❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
А вы в своей работе чаще используете индексы или партиционирование?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Провожу консультации (подробности здесь):
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32❤‍🔥6🐳4
🎉 Итоги года и большое спасибо вам:

Хочу подвести итоги года и просто сказать спасибо.

Канал я начал активно вести с начала июля этого года.
Цель была максимально простая и понятная — набрать 1000 подписчиков до конца года.
И мы с вами эту цель перевыполнили.🚬

Почему вы не видели постов про 500 или 1000 подписчиков? 🤩
Я сознательно их пропускал и ждал одно конкретное число.

📊 1106 человек. Почему именно оно для меня важно:
• По данным на 1 декабря 2025 года, именно столько населения в поселении, откуда я родом
• И получается, что мы с вами здесь собрали больше людей, чем живёт в месте, где я вырос

Если честно — это просто вау.
Очень сильное ощущение масштаба и ценности того, что происходит.

Отдельно хочу отметить, что результат был достигнут: 💡
• без рекламы
• только взаимный пиар, комментарии и контент

Для меня это показатель, что формат и темы действительно вам откликаются.

Что дальше? ☺️
Хочется развивать канал и делать его ещё полезнее, поэтому очень важно ваше мнение.

Что бы вы хотели видеть больше: 🔨
• больше SQL / Python / аналитики
• больше разборов задач и собесов
• больше life-контента
• или есть другие идеи — пишите, всё читаю

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

🍆 Принимаю поздравления в комментариях — считаю, что результат действительно хороший.
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Провожу консультации (подробности здесь):
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥39❤‍🔥15🐳833
Ловушка оператора OR в SQL и Python:

Мало кто понимает, что OR — ленивый оператор, который проверяет условия слева направо и останавливается на первом истинном.
Звучит как оптимизация, но может сыграть злую шутку, если этого не знать.

Как работает ленивое вычисление? 😀

Когда Python или SQL видит OR, он работает так:
• Проверяет первое условие слева
• Если оно истинно — возвращает результат и останавливается
• Если ложно — идёт проверять второе условие

Простыми словами: как только нашёл хоть одну правду — всё, дальше не смотрит. Это экономит ресурсы, но может пропустить важную логику.

Пример проблемы в Python: 🟢

Представим: мы проверяем пользователя — есть ли у него права админа или он прошёл дополнительную проверку безопасности.
def is_admin(user):
print("Проверяем права админа")
return user == 'admin'

def security_check(user):
print("Запускаем проверку безопасности")
# Тут могла быть запись в лог, отправка в аналитику и т.д.
return True

# Проверяем пользователя
user = 'admin'
access = is_admin(user) or security_check(user)
print(f"Доступ: {access}")

Вывод:
Проверяем права админа
Доступ: True

Проблема: Функция security_check() вообще не запустилась. Python увидел, что is_admin() вернул True, и дальше не пошёл. А там могла быть важная логика — запись в лог, отправка метрики, валидация. Всё это пропустилось из-за особенности работы оператора OR.

Пример проблемы в SQL: 🟢

Представим таблицу users с миллионом записей. Хотим найти пользователей, которые либо из Москвы, либо потратили больше 100 тысяч рублей.
SELECT
user_id,
city,
total_spent
FROM users
WHERE
1=1
AND (calculate_total_spent(user_id) > 100000 -- Тяжёлая функция
OR city = 'Moscow');

Проблема: Функция calculate_total_spent() очень дорогая — считает сумму по всем заказам пользователя. Если поставить её первой, она будет вычисляться для каждой строки. А если бы мы поставили city = 'Moscow' первым — для москвичей функция могла бы не считаться.

Важно: В SQL такая логика оператора OR не гарантирована стандартом. PostgreSQL и другие СУБД могут переставить условия или выполнить их параллельно. Оптимизатор сам решает, в каком порядке проверять.

Итог:

Оператор OR останавливается на первом истинном условии. В Python это гарантировано и работает всегда. В SQL — не гарантировано, оптимизатор может переставить условия.

❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
Сталкивались с такими проблемами? Знали про отличия между Python и SQL? Делитесь в комментариях!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Обучаю АНАЛитике и Провожу консультации (подробности здесь):
🚬 Вопросы, обучение, консультации

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20🐳3❤‍🔥2
🥰 Как эффективно искать работу на HeadHunter — без массовых откликов и скриптов:

Слышал от многих, что на hh.ru нужно отправлять по 50+ откликов в день и даже скрипты для этого пишут.
Но давайте честно: массовые отклики — это ,большая потеря энергии. Лучше точечно находить компании, где действительно хочется работать.

Разберёмся пошагово, как это делать правильно.

1️⃣Шаг 1: Составьте свой чек-лист требований:

Возьмите ручку и листок (или заметки в телефоне — не важно) и напишите, что для вас критично:
• Выдача техники (MacBook, монитор)
• Наличие IT-аккредитации у компании
• Конкретные технологии: SQL, Python, Superset, Redash, А/Б-тесты
• Полная удалёнка или гибрид
• ДМС и другие плюшки

2️⃣ Шаг 2: Используйте продвинутый поиск с AND/OR:

Большинство ищет просто «аналитик данных» — и получает сотни нерелевантных вакансий.
А можно искать точечно, используя логические операторы прямо в строке поиска hh.ru.

Пример запроса:
Python AND Superset

Вернёт только те вакансии, где упоминаются оба инструмента.

Ещё круче:
SQL AND Python AND (ДМС OR удалённо)

Найдёт вакансии, где обязательно есть SQL и Python, плюс либо ДМС, либо удалёнка.

Это работает как WHERE в SQL — комбинируйте условия под себя.

3️⃣ Шаг 3: Пишите сопроводительное письмо под вакансию:

Нашли интересную вакансию — не отправляйте просто резюме.
Напишите короткое сопроводительное письмо:
• Приветствие
• Почему вам интересна эта вакансия (технологии, продукт, команда)
• Какой релевантный опыт у вас есть
• Контакты для связи
• И т.д.

Это займёт 10 минут, но выделит вас среди сотни откликов с пустым полем.

4️⃣ Шаг 4: Резюме решает:

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

Если нужна помощь с составлением резюме / сопроводительного — можете обратиться ко мне @catdem, помогу разобраться. 🚬
Полный список c чем я могу помочь — mentor.dima-sqlit.ru


Итог:

🌟 Пересылайте друзьям и сохраняйте себе данный пост, чтобы не потерять.
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥20🔥16🐳102
👨‍💻 Подведу итоги канала при помощи сервиса, как многие это делают, а я не отстают от тренда)

Начнем сразу с ТОП 3 поста по реакциям:
1️⃣Итоги года и большое спасибо вам
2️⃣ Как посчитать медиану в SQL — разберем задачу с собеседования
3️⃣ Казалось бы, агрегатные функции в SQL (SUM, AVG, COUNT) просто считают значения — что тут сложного? Но есть скрытая ловушка: как они ведут себя с NULL?

Для тех кто вкатывается в IT (Аналитика данных), серия постов про бесплатные материалы:
1️⃣Бесплатные материалы для изучения статистики и проведения A/B тестов
2️⃣Бесплатные материалы для изучения визуализации данных
3️⃣Бесплатные материалы для изучения SQL — от азов до продвинутых тем
4️⃣Бесплатные материалы для изучения Python — базовый минимум для аналитики

ТОП 5 - Полезных постов по моему мнению:
1️⃣Повышаем продуктивность в Jupyter Notebook - мой личный топ горячих клавиш
2️⃣Как забирать данные из Google Sheets по API через Python
3️⃣ Копируем данные из DataFrame к себе в буфер обмена без лишних шагов с сохранением файлов
4️⃣ Как за 400 рублей в год получить доступ к Claude, ChatGPT, Gemini и Grok через Perplexity и без использования VPN
5️⃣ Как эффективно искать работу на HeadHunter — без массовых откликов и скриптов

☺️ Коротенькие итоги этого года:
🟠Спасибо, что остаетесь и подписывайтесь на канал, в следующем году постараюсь, делать как минимум не хуже, чем в этом (буду ждать от вас комментарии, что можно улучшить и чего по вашему мнению не хватает в блоге).
🟠В частности есть мысль, чтобы создать второй канал под life контент (спорт, покупки и т.п.). Хочется услышать ваше мнение (спойлер канал уже создан, но пока не знаю стоит ли делать под это отдельный канал, по моим ощущениям - стоит)
🟠В этом году открыл для себя направления менторства, всегда нравилось обучать кого-то и объяснять "сложное" простыми словами и при этом я тоже сам учусь
🟠Сделал интересные покупки в этом году, собираюсь это осветить чуть позже в канале (в этом или новом)
🟠Взял за практику стараться раз 1-1.5 месяца менять обстановку
🟠И т.д.

А что вы поняли и сделали за этого год и что собираетесь осуществить в следующем ?

@dima_sqlit

#winter #winter2025 #итогигода #итоги2025 #christmas #NY #newyear
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤‍🔥147
🔮 2026 год: чего ждать? Мой взгляд и ключевые тренды

Друзья, всем привет.
Первый пост в этом году решил написать о том, что реально будет важно в 2026 году.

Мы живём во времени, когда объём информации растёт экспоненциально.
И главный навык — уметь отфильтровывать важное от шума.

Раньше можно было:
• распыляться
• залипать в мемы
• учить всё подряд “понемногу”

Сейчас это становится слишком дорогой роскошью.

🤔 Почему фокус внимания — ключевой навык:
Раньше люди могли быть докторами наук сразу в нескольких областях.
Это было возможно, потому что объём знаний был ограничен.

Сегодня:
• каждая область перегружена информацией
• поверхностные знания почти ничего не стоят
• распыление = потеря времени и результата

2026 — это время точечного развития.

🧠 Когнитивные искажения — скрытый фактор 2026:

Когда информации становится слишком много, мозг начинает упрощать реальность, чтобы сэкономить энергию.
Он делает это неосознанно — через шаблоны и короткие пути мышления.

Эти систематические ошибки мышления и называются когнитивными искажениями.

Проще говоря:
👉 мозг не ищет истину, он ищет быстрое и удобное объяснение.

Почему это становится особенно важным в 2026:
• вокруг больше информации, чем мы способны переварить
• ИИ генерирует правдоподобные, но не всегда верные ответы
• маркетинг давит сильнее, чем факты
• решения нужно принимать быстрее

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

Примеры:
• эффект якорения — когда первое услышанное число/мнение сильно влияет на все последующие решения
• окно Овертона — когда через инфошум и многоразового повторения “нормализуют” то, что раньше казалось не мыслимым
• выученная беспомощность — когда человек перестаёт что-то менять (если предыдущий опыт был негативным), даже если может

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

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

🤖 Что по поводу ИИ (AI):
ИИ — полезный инструмент, но вокруг него сейчас не обосновано много "хайпа".

Что ИИ реально умеет:
• быстрее разобраться в теме
• быстрее сделать MVP / прототип
• быстрее написать код, SQL, аналитику
• быстрее накидать варианты решений

Если вы делаете серьёзный продукт, где важны:
• стабильность (чтобы не падал в проде)
• безопасность (доступы, уязвимости, данные)
• производительность (чтобы система быстро работала под нагрузкой)
• качество (минимум багов, поддерживаемость, тесты)

ИИ не сделает это за вас.

LLM — это модели, которые предсказывают ответ с определенной вероятностью, а не “думают”.
Без вашей проверки они легко ошибаются.

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

💰 Почему ИИ хайпят из каждого утюга

Причина банальная — деньги.

• в ИИ влиты десятки миллиардов долларов
• инвесторам нужно показать рост и “будущее”
• рынку нужно верить, что «в этот раз всё точно окупится»

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

Это не заговор — это обычная экономика.

Итог:

🌟 Пересылайте друзьям и сохраняйте себе данный пост, чтобы не потерять.
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
Как вы видите 2026 год? Согласны ли с моими выводами?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

💎 Полный список c чем я могу помочь — mentor.dima-sqlit.ru

@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥16🔥135211
🪙 Получаем Gemini 3 PRO бесплатно:

Друзья, всем привет.
Есть реальная возможность потестить Gemini 3 PRO в Business-версии абсолютно бесплатно на 30 дней — благодаря акции от Google.

Пошаговый план доступа:
1) Переходим по ссылке с акцией
2) Используем временную почту (если не хотим использовать свою), для этого я использовал вот этот сервис
3) Берем почту из пункта 2 и вводим ее на странице с акцией из пункта 1, далее вам придет на почту код верификации, вы его вводите и получаете доступ, все очень просто)

Какие проблемы могут быть:
• Из-за того, что это бесплатно и просто получить на эту подписку особо большая нагрузка, по этой причине ваши запросы могут долго висеть в очереди (я пробовал вчера ночью, все достаточно шустро работало)
• В любой момент подписка может быть деактивирована, так как это бесплатно, но я думаю это не беда, наше дело попробовать
• Если аккаунт будет сделан на основе временной почты, то скорее всего через 1-2 дня вас попросит пере зайти в аккаунт и вы уже не сможете в него войти, так как у вас не будет доступа к почте с которой вы регистрировали аккаунт

Итог:

🌟 Пересылайте друзьям и сохраняйте пост — акция не вечная.
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
Пробовали Gemini 3 PRO? Как vs Claude/Grok/ChatGPT для SQL/Python/других задач? Делитесь!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

💎 Полный список c чем я могу помочь — mentor.dima-sqlit.ru

@dima_sqlit

#gemini #ai #sql #python #dataanalytics #dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤‍🔥7🔥5🐳2
This media is not supported in your browser
VIEW IN TELEGRAM
🍌 Здоровье в IT: как я поддерживаю свое физическое состояние. Часть 3 — про Спорт:

Привет! В прошлых частях я рассказал про БАДы и про Менталку, на очереди спорт.
Прошлые части:
1) Про БАДы
2) Про Менталку

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

Мой топ 6 упражнений:
1️⃣ Подтягивания — одно из самых доступных и суперполезных упражнений. Задействует спину, руки, пресс и кучу неочевидных мышц. Нужен только турник: имеется почти на каждой спортивной площадке, или покупается на маркетплейсе и ставится в проеме.
2️⃣ Приседания - тоже упражнение очень полезное, разгоняет кровь, профилактика простаты (мы люди уже взрослые работаем про активно) и в целом помогает чувствовать себя в тонусе, особенно когда часто сидишь за компьютером. Делаю обычно по ощущениям, подходов 4-5, а повторений 10-30
3️⃣ Резина - чудо чудесное, беру с собой в поездки средней жесткости и поддерживать форму очень удобно. В новогодние праздники брал такую вещь с собой, не занимает много места, а упражнений можно придумать уйма, это и работа на бицепс, это и тренировка плеч, кисти и т.п. Считаю мастхев инструмент, который окупиться почти сразу же.
4️⃣ Отжимания - Ну здесь база, инвентарь это любой пол, подходит для любого человека, будь то новичок или уже на опыте, можно начать с отжимания с колен. Тоже работает большое количество мышц, то что нужно.
5️⃣ Работа с железом - здесь люблю тоже делать базу, это поднимание гантелей на бицепс. Жим от груди. Становую не делаю и приседание со штангой тоже, считаю, что обычных приседаний мне на данный момент более чем достаточно, а если хочу утяжелить приседания, то беру в руки гантели и приседаю с ними.
6️⃣ Прогулки - люблю гулять, узнавать новые локации в городе и в целом стараюсь делать базу 10000 шагов в день. Кстати, это одна из причин, чтобы заставить себя сходить в офис)

🔥Вот короткое видео с моими подтягиваниями вживую (смотрим прикрепленное видео).
Создал отдельный канал @dima_not_sqlit там будет life-контент:
Уже сейчас загрузил туда несколько видео где я занимаюсь спортом, заходим, ставим лайки, подписываемся, комментируем)

Итог: 🤩
Это база для меня, но мы все разные — ищите свои упражнения, чтобы шло в кайф. Пробуйте, экспериментируйте!

🍸 Если вы нашли пост для себя полезным, то накидывайте реакций, чтобы я понимал, что вам эта тема интересна!
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
А как вы поддерживаете свое физическое здоровье? Занимаетесь спортом, гуляете или есть что-то еще....? Делитесь в комментариях!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

🚬 Полный список c чем я могу помочь — mentor.dima-sqlit.ru


@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤‍🔥12🐳7
😅 Идемпотентность и Детерминированность: что это и почему аналитику важно это знать:

Друзья, всем привет. Сегодня поговорим про два термина, которые звучат страшно, но на деле — это база для любого, кто пишет скрипты, DAG'и или собирает витрины данных.

Аналитики сейчас часто не только строят графики, но и сами настраивают сбор данных (например, в Airflow). И тут важно понимать два принципа, чтобы не получить дубли или кривые цифры в отчетах.

🔜 Детерминированность (Determinism):
Звучит сложно, а суть простая:
Если мы скармливаем функции одни и те же данные на вход, она всегда должна возвращать один и тот же результат.

Детерминированный пример в SQL:
LOWER('Dima') — всегда вернет 'dima'
Это детерминировано.


Не детерминированный пример в SQL:
• NOW() или RANDOM() — каждый раз вернут разное значение, даже если вы ничего не меняли.


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

🔜 Идемпотентность (Idempotency):
Это про то, что количество запусков скрипта не должно ломать данные.

Представьте ситуацию: Вы написали скрипт для DAG'а, который считает продажи за вчерашний день и кладет их в итоговую таблицу. Если скрипт упал на середине или вы случайно запустили его два раза подряд — что произойдет?

Плохой сценарий (Не идемпотентно): Скрипт просто берет и вставляет данные (INSERT). Запустили два раза — данные задвоились. Отчет показывает выручку x2.

Хороший сценарий (Идемпотентно): Скрипт написан так, что сколько его ни запускай, результат будет корректный.


Как это делается (Логика, которую нужно прописывать): Перед тем как загрузить данные за конкретную дату (например, за 15 января), мы сначала должны «почистить» место.

Алгоритм простой:
Сначала удаляем данные за эту дату:
DELETE FROM table WHERE date = '2026-01-15'

И только потом вставляем новые данные:
INSERT INTO table ...


Теперь, даже если вы перезапустите DAG 10 раз подряд, у вас не будет дублей. Скрипт сначала удалит старое, а потом запишет новое. В таблице всегда будут актуальные данные в единственном экземпляре.

Итог: 🤩

🍸 Сохраняйте пост, чтобы не путаться в терминах и грамотно писать код.
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
Слышали об этих свойствах? Спрашивали у вас такое на собеседованиях? Делитесь в комментариях!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

🚬 Менторство, консультации и подготовка к собесам — подробнее тут: mentor.dima-sqlit.ru


@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤‍🔥542
😉 Что такое Асинхронность? Разбираемся на простых примерах:

Друзья, всем привет. Многие, слышали понятие Асинхронность и думали: «Ну, это какая-то сложная идея, пожалуй обойду ее стороной»

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

🤩 Пример из жизни:

Представьте, что вы решили сварить суп. Вы поставили кастрюлю с водой на плиту. Вода закипит только через 10 минут.

Два варианта ваших действий:

Синхронный подход (По очереди): Вы встаете напротив плиты и 10 минут пристально смотрите на воду. Вы не отвечаете на сообщения, не режете овощи, не листаете ленту. Вы полностью заблокированы ожиданием кипятка. Глупо? Глупо.

Асинхронный подход (Эффективный): Пока вода греется, вы не ждете, а переключаетесь: чистите картошку, отвечаете в рабочем чате или читаете книгу. Как только вода закипела, вы возвращаетесь к кастрюле и закидываете мясо.

Суть простая: Вы не ждете завершения долгого процесса (нагрев воды), чтобы начать делать что-то другое. Это и есть асинхронность.

📞 Как это работает в IT и Аналитике?

В программировании это работает точно так же. Представьте, что ваш скрипт или сайт — это кассир в магазине.

Без асинхронности: Подходит покупатель и говорит: «Мне нужно узнать баланс карты» (это запрос в Базу Данных). База данных думает 5 секунд. В этом сценарии кассир просто замирает и ждет. Вся очередь за этим покупателем стоит. Сайт «висит», никто ничего не может купить, все злятся.

С асинхронностью: Покупатель просит баланс. Кассир отправляет запрос в БД и, не дожидаясь ответа, сразу начинает обслуживать следующего человека! Он как бы говорит: «Я отправил запрос, пока ждем ответ — следующий!». Как только база данных "ответила", кассир на секунду возвращается к первому покупателю и говорит результат.

Один кассир успевает обслуживать сотни людей, просто эффективно используя время, пока система "думает".

🧠 Как применять это в жизни?

Этот принцип — отличный лайфхак для личной продуктивности. Мы часто теряем время в режимах пассивного ожидания (пока выгружается отчет, пока едет такси).

Как стать асинхронным:
• Запустили тяжелый SQL-запрос на 15 минут? Не сидите и не смотрите, как бежит полоска загрузки. Переключайтесь на мелкие задачи (ответить на почту, навести порядок в папках и т.д.).

Итог: 🤩

🍸 Сохраняйте пост, пригодится для общего понимания.
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
А как вы используете асинхронность? Делитесь в комментариях!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

🚬 Менторство, консультации и подготовка к собесам — подробнее тут: mentor.dima-sqlit.ru


@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥10🐳6🔥43
Как пройти секцию по АБ тестам на собеседовании?

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

- P-value, альфа, ошибка первого рода - это все одно и тоже?
- Как выбрать стат критерий?
- Почему за АБ тестами нельзя "подглядывать"?
- АА тест показал стат значимые отличия. Это норма?

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

Реклама: Борзило Ю.А., erid:2VtzquWVWmZ, ИНН: 026702638983
🔥1411🐳7❤‍🔥21
🐍 Бесплатно изучаем ООП на Python: нужно ли это аналитику?

Слышал много споров на тему: «Нужно ли аналитику знать ООП (Объектно-Ориентированное Программирование) или можно обойтись без него?».

У меня эта тема давно висела в списке «хочу изучить», но руки не доходили. Я начинал проходить много курсов, но они мне не заходили: либо материал подавали слишком сложно, либо формат объяснения был скучным и непонятным.

🤨 Что я нашел:

Совсем недавно наткнулся на автора на Stepik, у которого куча бесплатных курсов с огромным количеством положительных отзывов. Решил попробовать и не пожалел.
Курсы по ООП (там две части) мне сильно понравились. Да, безусловно, там покрывается не 100% всех тонкостей ООП, но для бесплатных материалов — это одни из лучших курсов. Для базового понимания парадигмы — то, что нужно.

🤩 Важный нюанс:

Если вы не знаете базового Python, вам будет сложновато. Поэтому новичкам рекомендую сначала пройти базу. Я всегда и всем советую курсы «Поколение Python» (для начинающих и продвинутых) — это золотой стандарт.

🚬 Мой лайфхак:

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

Ссылки на курсы:
ООП Часть 1
ООП Часть 2
Все курсы автора

Итог: 🤩

🍸 Сохраняйте пост, чтобы не потерять ссылки на курсы.
А как у вас отношения с ООП? Изучали или считаете лишним? Делитесь в комментариях!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

🚬 Готовлю вас к собесам и пишу резюме здесь: mentor.dima-sqlit.ru


@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤‍🔥6🐳3