Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Ищите дары леса и готовьте изысканные блюда на лесной ферме с ресторанчиками!

Грибники: дары леса

Фермы, Симуляторы, 2D

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
4
VelStyling
VelStyling
Серия SQL: знакомство

Неочевидные факты про JOIN⁠⁠

2 месяца назад

Про JOIN обычно пишут общую теоретическую информацию. Всегда упоминают виды JOIN-ов: INNER, LEFT, RIGHT, FULL, CROSS, а за кулисами могут остаться интересные факты, подводные камни и тонкости, которые редко упоминаются, но которые могут реально пригодиться.

Неочевидные факты про JOIN

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

Неочевидные факты про JOIN

Условие в ON vs WHERE

  • Для INNER JOIN — разницы нет, фильтрация в ON или в WHERE даст одинаковый результат.

  • Но для LEFT JOIN это уже не так:

    • ON фильтрует при объединении (строка может остаться с NULL в правой таблице).

    • WHERE фильтрует после — и может "выбросить" строки, ради которых делался LEFT JOIN.

👉 Классический баг у новичков: пишут условие в WHERE и не понимают, почему LEFT превратился в INNER.

Предположим, у нас есть две таблицы:

orders (таблица заказов):

order_id | customer_id | amount

---------|-------------|--------

1 | 1 | 100

2 | 2 | 200

3 | 1 | 150

customers (таблица клиентов):

customer_id | country

------------|---------

1 | USA

2 | UK

3 | USA

И есть два запроса:

SELECT o.order_id, c.customer_id, c.country

FROM orders o

LEFT JOIN customers c ON o.customer_id = c.customer_id

AND c.country = 'USA';

SELECT o.order_id, c.customer_id, c.country

FROM orders o

LEFT JOIN customers c ON o.customer_id = c.customer_id

WHERE c.country = 'USA';

Результаты этих запросов будут одинаковы?

Можно писать свои рассуждения в комментариях.

JOIN на неравенстве

Обычно мы пишем ON a.id = b.id, но можно и:

SELECT *

FROM a

JOIN b ON a.value BETWEEN b.min AND b.max;

Это называется non-equi join (неравенственный джойн).
👉 В BI и аналитике это часто используют для «поиска диапазона» (например, попадает ли дата заказа в акцию).
Но! Такой JOIN почти всегда тяжелее, потому что индексы плохо помогают.

FULL JOIN в проде почти не используют

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

  • Почти всегда можно заменить комбинацией LEFT JOIN UNION RIGHT JOIN.

  • А оптимизаторы некоторых СУБД работают с FULL OUTER JOIN медленнее.
    👉 Часто факт наличия FULL JOIN в запросе сигнализирует, что "что-то не так со схемой данных".

CROSS JOIN — не только для Декарта

Все думают, что CROSS JOIN = "перемножить всё на всё". Но он используется:

  • для генерации тестовых данных:

SELECT d::date

FROM generate_series('2025-01-01', '2025-01-31', interval '1 day') d

CROSS JOIN users;

для построения матриц, календарей, отчетов с дырками.
👉 То есть CROSS JOIN часто — инструмент BI-разработчика

JOIN и NULL — подстава

  • NULL = NULL → всегда FALSE.
    Поэтому если соединяешь таблицы по колонке с NULL, то такие строки просто теряются.
    👉 В проде это часто ломает аналитику: ожидали, что будет связь «пустое с пустым», а SQL этого не понимает.

Производительность JOIN-ов

  • Много JOIN-ов (10+) ≠ всегда медленно. Оптимизаторы умеют работать с огромными планами.

  • Но JOIN + функции (ON lower(a.name) = lower(b.name)) почти всегда убивает индекс → дорого.
    👉 Лучшее решение — хранить данные в нормализованном виде (например, имена в нижнем регистре).

ANTI JOIN

Вместо NOT IN или NOT EXISTS можно писать LEFT JOIN ... WHERE b.id IS NULL.
Это часто быстрее, особенно в старых версиях MySQL.
👉 Но не забывай: NOT IN (NULL, ...) ведет себя неожиданно (возвращает пустой набор).

JOIN ≠ JOIN ORDER

SQL — декларативный язык. Ты пишешь JOIN-ы в любом порядке, но оптимизатор сам решает, какую таблицу читать первой, как переставить местами соединения. Поэтому писать «самую маленькую таблицу первой» часто не имеет смысла. Но иногда хинты (JOIN ORDER, FORCE JOIN, USE INDEX) всё же нужны, когда оптимизатор ошибается.

Когда мы пишем:

SELECT *

FROM orders o

JOIN customers c ON o.customer_id = c.id

JOIN regions r ON c.region_id = r.id;

мы как бы говорим:
👉 «Дай мне все заказы, вместе с клиентами и регионами».

НО! Мы не указываем порядок, в котором эти таблицы реально будут соединяться.
Оптимизатор (query planner) сам решает:

  • какую таблицу читать первой;

  • по какому индексу идти;

  • в каком порядке выполнять JOIN-ы.

И этот порядок почти всегда ≠ порядок в SQL-запросе.

Как это работает на практике

  • Оптимизатор строит граф зависимостей между таблицами и условиями.

  • Считает «стоимость» разных стратегий (в PostgreSQL это cost-based optimizer).

  • Выбирает план с минимальной стоимостью: например, начать с маленькой таблицы, потом по индексу сходить в большую.

OIN ORDER hints

Иногда оптимизатор ошибается. Причины:

  • Неправильная статистика (например, таблица только что обновилась).

  • Очень сложный запрос (10+ JOIN-ов, подзапросы).

  • Особенности движка (MySQL раньше любил «сначала левую таблицу»).

Тогда СУБД позволяют подсказать оптимизатору:

  • FORCE ORDER (SQL Server, Oracle) → использовать JOIN-ы в том порядке, как написаны.

  • LEADING (Oracle) → указать, с какой таблицы начать.

  • USE INDEX (MySQL) → подсказать, какой индекс использовать.

  • PostgreSQL не имеет FORCE JOIN, но можно:

    • отключить конкретные алгоритмы (SET enable_hashjoin = off;)

    • использовать LATERAL, JOIN LATERAL, CROSS JOIN чтобы «подсказать» порядок.


🔹 Когда порядок JOIN реально важен

  1. Суперсложные запросы (20+ таблиц).
    Оптимизатор может выбрать очень дорогой план → запрос работает минуты/часы.
    Иногда правильный хинт → ускорение в десятки раз.

  2. Необновлённая статистика.
    Оптимизатор думает: «таблица маленькая», но на самом деле она разрослась. → выбирает плохой порядок JOIN.

  3. LIMIT + ORDER BY.
    Тут реально важно, с чего начать — иногда оптимизатор «тянет» всю таблицу, хотя мог бы остановиться раньше.


🔹 Лайфхак для практики

  • В PostgreSQL можно посмотреть план:

    EXPLAIN (ANALYZE, BUFFERS) SELECT ...

    → увидишь реальный JOIN order.

  • Не доверяй слепо «писать маленькую таблицу первой» — это миф, из старых времён MySQL.

  • Иногда лучше переписать запрос так, чтобы оптимизатору нечего было гадать. Например, вынести фильтрацию в CTE или subquery.

JOIN — это не только "соединить таблицы", а целый набор особенностей: от NULL и порядка фильтрации до генерации календарей через CROSS JOIN.

Подписывайся на мой канал На связи SQL и давай изучать особенности вместе!

Показать полностью 1
[моё] SQL Join Анализ Аналитик Аналитика Анализ данных Microsoft Excel База данных Саморазвитие Длиннопост
0
Блог компании
Finder
Finder

ТОП-23 курсов по HR-аналитике: обучение онлайн на HR-аналитика бесплатно и платно⁠⁠

2 месяца назад

Сегодня курсы HR-аналитики — это не просто тренд, а необходимость для специалистов по управлению персоналом. В условиях, когда каждая компания стремится принимать решения, основанные на данных, цифры становятся ключом к успеху в найме, удержании и развитии сотрудников. Согласно исследованиям консалтинговых агентств, организации, которые внедрили аналитику в свои HR-процессы, смогли сократить расходы на подбор персонала на 25-30%. Крупные компании все чаще ищут не просто эйчаров, а специалистов по HR-аналитике, готовых работать с большими данными и строить предсказательные модели.

Я исследовал около 40 программ, чтобы собрать для вас ТОП-23 курса по HR-аналитике. Для вашего удобства подборка разделена на несколько частей: сначала идут 10 самых сильных и продуманных курсов, затем — дополнительные форматы для практиков и новичков, а также бесплатные варианты для тех, кто хочет попробовать себя в профессии без финансовых вложений.

Также я нашел эксклюзивные предложения для некоторых школ. Все инструкции и промокоды вы найдете в описаниях к курсам.

ТОП-10 лучших курсов по HR-аналитике в 2025 году

  1. HR-аналитика от Eduson — курс, который откроет вам мир данных через Excel, SQL и Power BI, с обязательным дипломным проектом.

  2. HR-аналитика и автоматизация от «Нетологии» — идеальное сочетание теории и практики, где вы освоите автоматизацию HR-процессов.

  3. HR-аналитика с нуля от Skillbox — быстрое погружение в Python, SQL и визуализацию данных с помощью Power BI.

  4. HR‑аналитика от «Яндекс Практикума» — кейсы и воркшопы от экспертов Яндекса и HeadHunter.

  5. Основы HR‑аналитики от «Контур.Школы» — экспресс-курс с фокусом на базовые метрики и простые, но эффективные инструменты для начинающих.

  6. HR-аналитика и автоматизация HR-процессов от Moscow Business Academy — аккредитованная программа с акцентом на практическое освоение навыков и получение диплома.

  7. HR-аналитик от Onskills — акцент на визуализацию данных в Tableau, Power BI и Excel.

  8. HR-аналитика от НИУ ВШЭ — трехнедельный курс с насыщенной программой, включающей BI-инструменты и практические кейсы.

  9. Онлайн-курс HR-аналитика от Topcareer — практика на реальных материалах Ozon, НЛМК и Яндекса.

  10. HR-аналитика от «Специалиста» — расчеты HR-метрик и международный сертификат по окончании.

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

Онлайн-курсы по HR-аналитике

1. HR-аналитика | Eduson

Онлайн-курс «HR-аналитика» создан для тех, кто хочет освоить современные инструменты работы с данными в сфере управления персоналом. В программе собраны лекции практиков, кейсы из крупных компаний и задания, приближенные к реальной работе аналитика. Вас научат использовать Excel, Google Sheets, Power BI и SQL для анализа HR-процессов, а также формировать понятные дашборды и отчеты для руководства. По итогам предусмотрена дипломная работа и выдается официальный документ о повышении квалификации.

  • Стоимость: от 4134 руб./мес.

  • Длительность:  3 месяца (4 часа в неделю)

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

  • Сертификат: диплом и удостоверение о повышении квалификации установленного образца

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

Преимущества:

  • программа обновляется и доступна навсегда;

  • официальная лицензия и диплом о повышении квалификации;

  • обучение ведут эксперты с опытом работы в крупнейших компаниях;

  • доступ к кейсам из реальной практики;

  • помощь в составлении резюме и трудоустройстве;

  • участие в корпоративных проектах Eduson;

  • отработка навыков в Excel, Google Sheets, Power BI, SQL;

  • личный куратор и чат для вопросов;

  • итоговый дипломный проект;

  • возможность налогового вычета 13%.

Недостатки:

  • высокая нагрузка из-за большого количества практических заданий;

  • ограниченные места на потоки;

  • часть материалов доступна только онлайн, без офлайн-формата.

Программа обучения:

  • Введение в HR-аналитику и взаимодействие HR с бизнесом

  • Продвинутый уровень работы в Excel и Google Sheets

  • Автоматизация HR-процессов

  • SQL для получения и анализа данных

  • Power BI для визуализации

  • Метрики HR-аналитики и построение гипотез

  • Презентация результатов анализа в PowerPoint

  • Выпускной проект

  • Бонусные блоки

Ознакомиться с полной программой >>>


2. HR-аналитика и автоматизация | Нетология

Используйте промокод kursfinder, чтобы получить скидку 7%

Применить промокод>>> 

Онлайн-курс «HR-аналитика и автоматизация» предназначен для тех, кто хочет освоить работу с данными, научиться использовать SQL и BI-инструменты, а также перейти в аналитическую сферу HR. Программа курса сочетает теорию и практику: студенты решают реальные кейсы, автоматизируют отчетность, строят прогнозы и осваивают современные методы анализа данных. Курс не только развивает технические навыки, но и помогает понять роль HR-аналитика в бизнесе. Обучение завершается дипломным проектом с поддержкой опытного наставника.

  • Стоимость: от 63 900 руб. (есть рассрочка до 24 месяцев)

  • Длительность: 6 месяцев

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

  • Сертификат: удостоверение о повышении квалификации установленного образца

Кому подойдет: HR-менеджерам с опытом от 1 года, рекрутерам, специалистам по персоналу и тем, кто хочет сменить профессию и перейти в аналитику.

Преимущества:

  • обучение на основании гослицензии;

  • удостоверение о повышении квалификации;

  • сочетание теории и практики (более 190 часов);

  • работа с Excel, SQL, Power BI, Tableau и DataLens;

  • доступ к учебным материалам навсегда;

  • удобное мобильное приложение для занятий;

  • персональная поддержка куратора и дипломного руководителя;

  • готовые шаблоны отчетов и дашбордов в подарок;

  • возврат денег в случае отказа от обучения;

  • помощь в трудоустройстве и добавление сертификата в резюме.

Недостатки:

  • высокая нагрузка (7–10 часов занятий в неделю);

  • ограниченный набор бесплатных материалов;

  • часть модулей доступна только в расширенном тарифе.

Программа обучения:

  • Основы HR-аналитики

  • Расширенная HR-аналитика

  • Сбор и подготовка данных

  • Автоматизация HR-процессов

  • Визуализация данных

  • Дополнительные модули soft skills и английский язык для аналитиков

  • Дипломный проект

Ознакомиться с полной программой >>>


3. HR-аналитика с нуля | Skillbox

Используйте промокод kursfinder, чтобы получить скидку 50%

Применить промокод>>> 

В программе собраны самые востребованные инструменты — Excel, Power BI, Python, SQL и Google Sheets, а также практические задания на реальных данных. Занятия ведут эксперты из «Лаборатории Касперского», Tele2, X5 и других крупных компаний. Обучение строится на сочетании теории и практики, а итогом становится проект по оценке HR-процессов, который можно добавить в портфолио.

  • Стоимость: от 2 578 руб./мес. в рассрочку на 24 месяца

  • Длительность: 3 месяца (при занятиях от 3 до 5 часов в неделю)

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

  • Сертификат: сертификат Skillbox установленного образца (официальный диплом доступен в рамках программ переподготовки)

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

Преимущества:

  • обучение у экспертов из ведущих компаний;

  • изучение Excel, Power BI, Python, SQL и AI-инструментов;

  • курс по Excel в подарок;

  • доступ к материалам и обновлениям навсегда;

  • проект по HR-аналитике в портфолио;

  • практика на реальных данных компаний;

  • индивидуальная обратная связь от кураторов;

  • 7+ практических заданий по ключевым темам;

  • консультации по карьерным вопросам;

  • возможность получения налогового вычета.

Недостатки:

  • часть дополнительных курсов доступна только в тарифах PRO и Expert.

Программа обучения:

  • Основы HR-аналитики

  • BI Analytics (для продвинутых тарифов)

  • Использование HR-метрик в подборе, адаптации и обучении

  • Оценка сотрудников и построение матрицы потенциала

  • Разработка систем мотивации на основе данных

  • Визуализация HR-процессов в Power BI и Excel

  • Работа с Python и SQL для HR-аналитики

  • Презентации и отчеты для руководства

  • Итоговый проект по оценке HR-отдела

Ознакомиться с полной программой >>>


4. HR‑аналитика | Яндекс Практикум

Купите любой курс с выгодой до 20% при оплате сразу

Получить скидку>>> 

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

  • Стоимость: от 2 939 руб./мес. в рассрочку на 36 месяцев

  • Длительность: 3 месяца

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

  • Сертификат: удостоверение о повышении квалификации (лицензия АНО ДПО «Образовательные технологии Яндекса»)

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

Преимущества:

  • программа обновлена в 2025 году;

  • обучение у HR-аналитиков из Яндекса и HeadHunter;

  • теория в доступной форме с заданиями для закрепления;

  • воркшопы с экспертами каждую неделю;

  • практика на кейсах реальных компаний;

  • использование Excel, DataLens и BI-инструментов;

  • работа с продвинутыми методами анализа (корреляция, регрессия);

  • поддержка наставников и кураторов;

  • YandexGPT помогает в учебе и делает конспекты;

  • возможность оплаты через работодателя и налогового вычета.

Недостатки:

  • нет диплома о профессиональной переподготовке, только удостоверение.

Программа обучения:

  • Знакомство с HR-аналитикой

  • Сбор и подготовка HR-данных

  • Обработка данных и продвинутые формулы в Excel

  • Расчет и анализ HR-метрик

  • Предиктивная аналитика и статистические методы

  • Визуализация данных и создание дашбордов

  • Презентация результатов HR-анализа

  • Выпускной проект

Ознакомиться с полной программой >>>


5. Основы HR‑аналитики | Контур Школа

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

  • Стоимость: 7 900 руб.

  • Длительность: 2 месяца

  • Формат обучения: видеолекции, лонгриды, методические материалы, онлайн-тесты для самопроверки

  • Сертификат: электронный сертификат после успешного прохождения теста

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

Преимущества:

  • программа от лицензированного учебного центра;

  • доступный формат подачи информации без лишней теории;

  • актуальные практические рекомендации;

  • методические материалы с формулами и моделями;

  • структурированное обучение по блокам по 5–25 минут;

  • эксперты с опытом работы в подборе и обучении;

  • поддержка 24/7 через чат, почту и телефон;

  • тесты для закрепления знаний;

  • возможность учиться с мобильного приложения;

  • 14 лет опыта школы в онлайн-образовании.

Недостатки:

  • упор на базовый уровень без углубленной аналитики;

  • нет персонального куратора.

Программа обучения:

  • Управление текучестью персонала

  • HR-аналитика в подборе сотрудников

  • Метрики эффективности подбора и анализ воронки

  • Оценка эффективности обучения

Ознакомиться с полной программой >>>


6. HR-аналитика и автоматизация HR-процессов | Moscow Business Academy

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

  • Стоимость: от 3 030 руб./мес. (есть рассрочка на 12 месяцев)

  • Длительность: 1 месяц

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

  • Сертификат: удостоверение о повышении квалификации, заносится в ФРДО; дополнительный сертификат установленного образца

Кому подойдет: HR-специалистам, аналитикам, менеджерам и руководителям, которые хотят развить навыки анализа данных, автоматизации процессов и оптимизации работы с персоналом.

Преимущества:

  • обучение по гослицензии с официальным удостоверением;

  • преподаватели-практики из крупных компаний;

  • возможность совмещать учебу с работой;

  • онлайн-формат с доступом из любой точки мира;

  • аккредитация ECICEL, РАБО, НАСДОБР и ELQN;

  • индивидуальные проекты и реальные практические задания;

  • 70% программы — практика;

  • поддержка кураторов и экспертов;

  • возврат полной стоимости в течение 14 дней при отказе от курса.

Недостатки:

  • ограниченные места на поток;

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

Программа обучения:

  • Основы HR-аналитики и стратегического менеджмента

  • Методы сбора и обработки HR-данных

  • Автоматизация основных HR-процессов

  • Использование IT-инструментов в управлении персоналом

  • Работа с HR-метриками для оптимизации подбора и удержания

  • Итоговые проекты и практические задания

Ознакомиться с полной программой >>>


7. HR-аналитик | Onskills

Программа охватывает весь процесс — от освоения базовых терминов до применения предиктивной аналитики и визуализации данных в Power BI, Tableau и Excel. Занятия включают практические задания и тесты, а доступ к материалам сохраняется навсегда. По окончании курса участники получают именной сертификат, который подтверждает приобретенные навыки.

  • Стоимость: 1 900 руб.

  • Длительность: около месяца (свободный темп)

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

  • Сертификат: именной сертификат Onskills в электронном и бумажном формате (по запросу)

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

Преимущества:

  • доступ к материалам навсегда;

  • программа регулярно обновляется;

  • возможность пройти первый урок бесплатно;

  • поддержка в процессе обучения;

  • скидка 15% при регистрации через VK;

  • обучение в удобном онлайн-формате;

  • практическая направленность курса;

  • освоение Power BI, Tableau и Excel для HR-задач;

  • тесты после каждого урока;

  • лицензия Министерства образования РФ.

Недостатки:

  • курс рассчитан в основном на базовый уровень;

  • не предусмотрено индивидуальное наставничество.

Программа обучения:

  • Введение в HR-аналитику и ее роль в бизнесе

  • Основные метрики: текучесть, стоимость найма, ROI, NPS сотрудников

  • Методы сбора и обработки данных

  • Анализ HR-данных и выявление проблем

  • Визуализация информации и дашборды

  • Предиктивная аналитика и прогнозирование

  • Оценка эффективности обучения персонала

  • Анализ вовлеченности и удовлетворенности сотрудников

  • HR-аналитика в рекрутинге

Ознакомиться с полной программой >>>


8. HR-аналитика | НИУ ВШЭ

Этот курс представляет собой программу повышения квалификации для специалистов по управлению персоналом. За три недели участники освоят современные инструменты анализа данных и научатся применять HR-метрики для оценки подбора, адаптации, мотивации и обучения сотрудников. В программу добавлены практические задания, работа с BI-платформами и решение бизнес-кейсов, что позволяет закрепить теорию на практике. Преподаватели — практикующие эксперты в сфере HR и аналитики.

  • Стоимость: 49 000 руб.

  • Длительность: 3 недели (34 академических часа)

  • Формат обучения: синхронные онлайн-занятия, лекции, практические задания, разбор кейсов, персональное сопровождение

  • Сертификат: удостоверение о повышении квалификации установленного образца НИУ ВШЭ

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

Преимущества:

  • интенсивное обучение и развитие новой компетенции за 3 недели;

  • практика на основе реальных кейсов;

  • доступ к занятиям в онлайн-формате из любой точки мира;

  • персональное сопровождение и менторство;

  • преподаватели — BI-аналитики и HR-эксперты;

  • знакомство с современными тенденциями в HR-аналитике;

  • освоение Power BI, Excel и SPSS;

  • решение итогового бизнес-кейса;

  • возможность корпоративного обучения;

  • налоговый вычет до 13% от стоимости курса.

Недостатки:

  • ограниченное количество мест в группе;

  • фиксированные даты и график занятий;

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

Программа обучения:

  • Введение в HR-аналитику и основные тенденции

  • Метрики для управления HR-процессами

  • Основы анализа данных

  • Структурирование и визуализация HR-информации

  • Итоговый кейс с практическим применением

Ознакомиться с полной программой >>>


9. Онлайн-курс HR-аналитика | Topcareer

Программа охватывает основные метрики управления персоналом, визуализацию данных, автоматизацию отчетности и работу с гипотезами. Лекции ведут практикующие эксперты из Ozon, НЛМК, Яндекс, Почты России и других компаний. Участники получают доступ к реальным кейсам, инструментам и готовым шаблонам решений для повседневной работы.

  • Стоимость: 150 000 руб. (рассрочка от 12 500 руб. в месяц)

  • Длительность: 115 академических часов

  • Формат обучения: 27 видеоуроков, практические задания, мастермайнды, сопровождение куратора и ментора, бессрочный доступ к LMS-платформе и обновлениям

  • Сертификат: удостоверение о повышении квалификации установленного образца

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

Преимущества:

  • обучение с действующими HR-топами из ведущих компаний;

  • 27 уроков с актуальными кейсами и примерами 2025 года;

  • практика в Excel и инструментах визуализации;

  • возможность построить дашборды, понятные бизнесу;

  • отработка гипотез и моделей для HR-задач;

  • бессрочный доступ ко всем материалам и обновлениям;

  • персональная поддержка куратора 24/7;

  • участие в сообществе и нетворк с коллегами;

  • мастермайнды и воркшопы с экспертами;

  • официальное удостоверение о повышении квалификации.

Недостатки:

  • высокая стоимость индивидуального обучения;

  • ограниченные места в потоке;

  • сложность программы для слушателей без базовых знаний Excel.

Программа обучения:

  • Основы HR-аналитики и работа с бизнес-запросами

  • Внедрение data-driven культуры и цифровизации HR

  • Формулировка гипотез и проверка решений

  • Автоматизация отчетности и анализ данных

  • Использование внешних источников и бенчмарков

  • Визуализация HR-показателей и построение дашбордов

Ознакомиться с полной программой >>>


10. HR-аналитика | Учебный центр «Специалист» при МГТУ им. Баумана

Онлайн-курс HR Analytics Workshop помогает освоить методы оцифровки HR-процессов и их связь с бизнес-результатами компании. На занятиях слушатели учатся рассчитывать эффективность подбора, адаптации, мотивации и обучения сотрудников, а также прогнозировать пользу от планируемых HR-инициатив. В основе программы сочетание теоретических блоков и практических заданий, которые позволяют не только понять принципы HR-аналитики, но и сразу применять формулы и расчеты для реальных кейсов. Автор курса — Светлышева Ольга Юрьевна, эксперт в области управления персоналом.

  • Стоимость: от 16 490 руб.

  • Длительность: 16 ак. ч. + 12 ак. ч. самостоятельной работы

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

  • Сертификат: удостоверение о повышении квалификации или международный сертификат

Кому подойдет: курс ориентирован на HR-специалистов, руководителей подразделений по работе с персоналом, специалистов по компенсациям и льготам, HR-generalist-ов, а также бизнес-аналитиков, отвечающих за работу с HR-данными.

Преимущества:

  • сочетание теории и практики в каждом модуле;

  • обучение по стандарту Минтруда РФ;

  • доступность очного, онлайн и свободного формата;

  • преподаватель — практик с опытом работы в HR;

  • практические расчеты и учебные проекты;

  • готовые формулы и схемы анализа HR-метрик;

  • акцент на бизнес-мышлении и отчетности перед руководством;

  • возможность работать с ATS, HRM и BI-инструментами;

  • выдача документов установленного образца;

  • скидки для частных лиц и корпоративных заказчиков.

Недостатки:

  • стоимость выше среднего уровня для краткосрочных курсов;

  • ограниченное количество мест в группах.

Программа обучения:

  • Инструменты HR-аналитики и внедрение data-driven подхода

  • Оценка стоимости и качества подбора персонала

  • Анализ эффективности мотивации, обучения и удержания

  • Расчеты пользы HR-службы для бизнеса и ее влияние на стратегию

Ознакомиться с полной программой >>>


Еще 3 курса по HR-аналитике

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

  • Онлайн-школа по HR-аналитике от Deynekina. Курс учит работать с HR-данными, применять метрики для оценки процессов и использовать статистические методы анализа. В программе есть работа с Excel, построение дашбордов, исследование внутреннего бренда работодателя и бюджетирование. Все навыки направлены на повышение качества решений в управлении персоналом и оптимизацию HR-процессов.

  • HR Аналитика от Mike Pritula TALENT ACADEMY. Курс посвящен современным подходам к HR-аналитике и People Analytics. Он учит использовать данные для оптимизации процессов управления персоналом, расчета ценности сотрудника (ELV) и внедрения стратегий, повышающих эффективность бизнеса. В программе есть темы анализа рекрутинга, текучести, вовлеченности, построения прогнозов и проведения экспериментов. Обучение построено на практических заданиях с разбором кейсов и завершается получением диплома.

  • HR-метрики от Talent Code. Курс ориентирован на освоение методов разработки и внедрения HR-метрик. Участники учатся оцифровывать процессы управления персоналом, рассчитывать показатели, формировать отчетность и анализировать влияние метрик на результаты компании. Программа сочетает видеоуроки, практические задания и живые встречи с экспертами, а итогом становится выпускной проект и удостоверение о повышении квалификации.


Еще 4 курса для HR

Я также подобрал четыре программы, которые расширяют профессиональные компетенции в HR-области. Они затрагивают аналитику, управление персоналом и смежные направления, необходимые современному специалисту.

  • HR-менеджер от Eduson Academy. Курс обучения на HR-аналитика помогает изучить основы, автоматизацию процессов и использование нейросетей. Участники учатся работать с метриками, разрабатывать систему мотивации, управлять корпоративной культурой и брендом работодателя. Программа сочетает теорию, практические задания и бизнес-кейсы, завершаясь дипломным проектом и официальным удостоверением о повышении квалификации.

  • HR-менеджер от Нетологии. Курс помогает освоить все основные направления работы HR-менеджера — от рекрутмента и адаптации до мотивации, корпоративной культуры и HR-аналитики. Во время обучения HR-аналитике Участники проходят вебинары, воркшопы и практикуются на реальных проектах под руководством экспертов из крупных компаний. Обучение длится 8 месяцев и завершается дипломом о профессиональной переподготовке.

  • HR-менеджер с нуля от Skillbox. Программа построена в формате практикума и тренажера, где участники решают реальные задачи HR-специалистов. Обучение охватывает подбор, адаптацию, развитие сотрудников и работу с корпоративной культурой. Каждый студент получает обратную связь от экспертов, формирует портфолио с кейсами и может попасть на собеседования в крупные компании еще во время курса.

  • HR-менеджер от Яндекс Практикума. Обучение рассчитано на 5 месяцев и охватывает все этапы HR-цикла — от подбора и адаптации сотрудников до мотивации, корпоративной культуры и увольнений. В программу входят практические кейсы, воркшопы и проекты, которые помогают закрепить знания. Студенты получают поддержку экспертов и карьерного центра, а по окончании — диплом о профессиональной переподготовке.


Бесплатные курсы по HR-аналитике

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

  1. Ключевые метрики в HR от Otus. Открытый урок знакомит с базовыми HR-метриками, которые помогают оценивать эффективность работы службы персонала. Разбираются показатели, с которых стоит начинать построение аналитики, а также их взаимосвязи. Дополнительно даются рекомендации по проверке качества данных, на основе которых рассчитываются метрики.

  2. Курс HR-аналитика от Института бизнес аналитики. Бесплатный курс по HR-аналитике знакомит с основами HR-аналитики и показывает, как использовать метрики и KPI для оценки эффективности работы персонала. В программе рассматриваются подбор и текучесть сотрудников, обучение и развитие, а также анализ фонда оплаты труда. Материал подается через короткие видеоуроки и дашборды, что помогает быстрее освоить практическое применение аналитики.

  3. Что такое HR-аналитика и какие HR-метрики существуют? от Работа.ру. В этом открытом занятии объясняется, что такое HR-аналитика и зачем компаниям нужны метрики для управления персоналом. Спикеры разбирают базовые показатели, которые помогают оценивать эффективность HR-службы и работу сотрудников. Материал подан простым языком, с практическими примерами и рекомендациями для начинающих специалистов.

  4. Система HR-аналитики от VK Tech. Вебинар посвящен созданию системы HR-аналитики и ее роли в управлении персоналом. Эксперт показывает, какие метрики стоит использовать, как они помогают решать основные задачи компании и улучшать процессы. Участники получают практические примеры инструментов и подходов, применяемых в реальных HR-департаментах.

  5. HR-аналитика от Эдуарда Бабушкина. Курс построен в формате видеолекций и семинаров, где подробно разбираются метрики HR, работа с Excel, Power BI и языком R. Материалы охватывают анализ текучести персонала, оценку эффективности рекрутинга, построение дашбордов и применение статистики. Такой подход позволяет освоить практические инструменты для глубокой аналитики кадровых процессов.

  6. HR-аналитика: как не утонуть в данных, делать правильные расчеты и выводы от SpecialistTV. Курс знакомит с основами HR-аналитики и показывает, как использовать данные для обоснованных управленческих решений. Разбираются методы расчета основных показателей, интерпретация результатов и оформление выводов для руководства. Обучение помогает уверенно работать с метриками и демонстрировать пользу HR для бизнеса.


HR-аналитика сегодня стала неотъемлемым инструментом для управления персоналом и развития компаний. Она помогает не только собирать данные, но и превращать их в понятные выводы для бизнеса. Выбор курса зависит от целей: кому-то нужен базовый вводный материал, а другим — глубокое изучение инструментов и метрик. Требуется обращать внимание на практические задания, работу с реальными кейсами и поддержку экспертов. Если вы хотите быстрее освоить профессию и уверенно применять знания в работе, подойдут современные курсы HR-аналитики, которые комбинируют теорию и практику.

Показать полностью 12
Обучение Курсы Аналитика Работа HR Отдел кадров Управление Python Microsoft Excel SQL YouTube (ссылка) Длиннопост Блоги компаний
3
VelStyling
VelStyling
Серия SQL: знакомство

NULL, Но(у)ль, Неизвестно, Пусто... Что это все такое⁠⁠

2 месяца назад

NULL — это специальное значение в SQL, которое означает отсутствие данных или неизвестное значение. Важно понимать, что NULL ≠ 0 и NULL ≠ пустая строка (‘’).

А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. И пост про NULL уже ждет тебя! Присоединяйся!

NULL, Но(у)ль, Неизвестно, Пусто... Что это все такое

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

И это надо запомнить при работе с данными.

Все что вы будете сравнивать с NULL будет возвращаться как UNKNOWN.

Для работы с NULL есть специальные операторы.

-- Проверка на NULL

SELECT *

FROM table

WHERE column IS NULL;

-- Проверка на НЕ NULL

SELECT *

FROM table

WHERE column IS NOT NULL;

-- Замена NULL на значение

SELECT COALESCE(column, 'значение_по_умолчанию')

FROM table;

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

Вообще, понятие NULL появилось в начале 1970-х годов. Разработчики реляционных БД специально создали такое значение для обозначения отсутствия данных. Это было революционным решением, позволившим хранить информацию более гибко.

Математические фокусы с NULL:

  • Любое число + NULL = NULL

  • NULL * 100 = NULL

  • NULL / 2 = NULL

  • Индексы могут работать медленнее при наличии NULL

  • Некоторые типы индексов вообще не поддерживают NULL

  • Агрегатные функции игнорируют NULL по умолчанию

Ну и коротко про то что такое Но(у)ль:
Ноль — это чётко определённое значение:

  • Числовое значение

  • Имеет математический смысл

  • Участвует в вычислениях

  • Равно самому себе

А теперь про пусто:
Пустота — отсутствие содержимого

Пустое значение может быть:

  • Пустой строкой (‘’ или “”)

  • Пустым массивом

  • Пустым объектом

  • Имеет конкретный тип данных

Рекомендации:

  • Используйте NULL для неизвестных данных

  • Применяйте 0 для числовых значений по умолчанию

  • Используйте пустые строки для незаполненных текстовых полей

Заключение

Помните: каждое из этих значений несёт свой смысл. Неправильное использование может привести к:

  • Ошибочным расчётам

  • Некорректной логике

  • Потерям данных

  • Системным ошибкам

А как вы работаете с этими значениями в своих проектах? Поделитесь опытом в комментариях!

Показать полностью 1
[моё] Null База данных Анализ данных Аналитика Аналитик SQL Microsoft Excel Большие данные Самообразование Длиннопост
1
VelStyling
VelStyling
Серия SQL: знакомство

DELETE в SQL: когда одно слово может стереть ваши данные⁠⁠

2 месяца назад

DELETE — инструменте, который может как спасти вашу базу данных от хлама, так и превратить её в пустыню за считанные секунды.

DELETE как цифровой пылесос**, который может убрать всё, что вы ему скажете. Только вот вернуть обратно будет ой как непросто!

DELETE в SQL: когда одно слово может стереть ваши данные

А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!

Базовый синтаксис:

DELETE FROM таблица
WHERE условие;

Можно использовать EXISTS с подзапросами

DELETE FROM orders

WHERE EXISTS (

SELECT 1

FROM customers

WHERE customers.id = orders.customer_id

AND customers.status = 'deleted' );

Удаляет заказы неактивных клиентов.

Можно использовать JOIN

DELETE o

FROM orders o

INNER JOIN customers c ON o.customer_id = c.id

WHERE c.registration_date < '2020-01-01';

Удаляет заказы клиентов, зарегистрированных до 2020 года.

Как происходит удаление записей?

Физическое удаление в SQL — это не мгновенное стирание данных с диска. Когда вы выполняете DELETE:

  • Система записывает операцию в журнал транзакций

  • Помечает удалённые строки как свободные

  • Физическое место может быть использовано для новых данных

  • Сами данные остаются в файле некоторое время

Формируется основной файл .mdf (или аналогичный). Также информация записывается в журнал транзакций. Сроки хранения удаленных данных зависят от:
- модели восстановления базы данных
- активности базы данных
- настроек резервного копирования
- объема свободного места

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

Способы восстановления данных после DELETE

  1. Восстановление из резервной копии

    RESTORE DATABASE имя_базы FROM DISK = 'путь_к_бэкапу'

  2. Использование моментальных снимков (Snapshot)

    CREATE DATABASE имя_снимка

    ON (NAME = имя_файла, FILENAME = 'путь_к_файлу')

    AS SNAPSHOT OF исходная_база;

    Восстановление данных из снимка:

    INSERT INTO исходная_таблица

    SELECT * FROM снимок.dbo.таблица

  3. Восстановление через LSN (Log Sequence Number)

    Если есть журналы транзакций:

    BACKUP LOG имя_базы TO DISK = 'путь_к_журналу'

    Поиск удалённых записей:
    SELECT [Current LSN], [Transaction ID]

    FROM fn_dblog(NULL, NULL)

    WHERE Operation = 'LOP_DELETE_ROWS'

  4. Либо использовать специальные посторонние программы для восстановления БД

Чтобы предотвратить потерю данных:

  • Регулярно создавайте резервные копии

  • Используйте транзакции (BEGIN TRANSACTION / ROLLBACK)

  • Тестируйте DELETE-запросы на тестовой базе

  • Применяйте WHERE с осторожностью

  • Настройте политики резервного копирования

DELETE vs TRUNCATE

Многие думают, что TRUNCATE и DELETE — это одно и то же. На самом деле:

  • DELETE удаляет строки по одной и записывает каждую операцию в журнал транзакций

  • TRUNCATE мгновенно очищает таблицу, минуя журнал (кроме некоторых случаев)

При выполнении DELETE:

  • Блокируются только удаляемые строки

  • Другие транзакции могут читать незаблокированные данные

  • В некоторых СУБД возможна эскалация блокировок до уровня таблицы

  • Не затрагивает структуру индексов

  • Индексы остаются в прежнем состоянии

  • Это ускоряет процесс удаления

  • Не сбрасывает счётчики автоинкремента

  • Сохраняет текущее значение последовательности

  • Важно при работе с первичными ключами

  • Активируются триггеры AFTER DELETE

  • Можно отслеживать удалённые строки через виртуальную таблицу deleted

  • Триггеры могут отменить операцию удаления

Чтобы сохранить целостность данных можно использовать ON DELETE CASCADE
Это позволит там, где есть зависимость по внешним ключам произвести удаление зависимых строк.

Показать полностью 1
[моё] SQL Аналитик Аналитика Большие данные Microsoft Excel Анализ данных Эмоциональное выгорание Самообразование База данных Длиннопост
6
0
VelStyling
VelStyling
Серия SQL: знакомство

UPDATE в SQL: не путай с «обновлением Windows»⁠⁠

2 месяца назад

UPDATE — это команда, с помощью которой мы меняем данные, уже существующие в таблице.
Не добавляем новые строки (как INSERT), не удаляем (как DELETE), а правим то, что есть.

А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!

Базовый синтаксис выглядит следующим образом:

UPDATE table_name

SET column1 = value1,

column2 = value2

WHERE condition;

  • UPDATE table_name → в какой таблице меняем данные.

  • SET → что именно меняем и на какие значения.

  • WHERE → условие, чтобы обновить только нужные строки.

Если забыть WHERE → обновятся все строки таблицы. Классический факап новичка.

Где и когда используется?

  • Меняем телефон у клиента → UPDATE customers SET phone = '...' WHERE id = 5;

  • Уменьшаем остаток товара после покупки.

  • Обновляем статус заказа.

Проще говоря: везде, где данные живые и меняются со временем.

Можно обновлять сразу несколько строк:

UPDATE products

SET price = price * 0.9

WHERE category = 'clothes';

В этом запросе нет ограничений по количеству строк, если в таблице есть 10 строк с категорией = 'clothes', то скидка в 10% применится ко всем 10 строкам.

В UPDATE можно использовать JOIN при более сложной логике

UPDATE orders o

SET amount = amount * 1.1

FROM customers c

WHERE o.customer_id = c.id

AND c.vip = true;

Мы делаем обновления в таблице orders, но делаем их для тех покупателей, у которых есть признак ВИП. А признак ВИП хранится в таблице customers.

В этом запросе явно не указан JOIN, но с JOIN запрос выглядел бы вот так:

UPDATE orders o

SET amount = amount * 1.1

FROM orders o2

JOIN customers c ON o2.customer_id = c.id

WHERE o.id = o2.id AND c.vip = true;

Здесь больше строк, поэтому многие предпочитают первый вариант.

  • PostgreSQL, SQL Server → поддерживают UPDATE ... FROM.

  • MySQL → там другой синтаксис:

UPDATE orders o

JOIN customers c ON o.customer_id = c.id

SET o.amount = o.amount * 1.1

WHERE c.vip = true;

Т.е. в MySQL JOIN присутствует в явном виде.

RETURNING в PostgreSQL

UPDATE orders

SET status = 'done'

WHERE id = 101

RETURNING *;

Сразу получаешь обновлённые строки, без лишнего SELECT. В MySQL и SQL Server такого нет.

Deadlock при UPDATE

  • Транзакция А захватила строку 1 и ждёт строку 2.

  • Транзакция B захватила строку 2 и ждёт строку 1.

  • Обе ждут друг друга бесконечно.

База видит: «ну, так не пойдёт» → и убивает одну из транзакций, чтобы освободить дорогу.

  • При обычной блокировке ты просто ждёшь, пока другой закончит.

  • При deadlock оба ждут друг друга, и никто никогда не закончит — тупик.

В UPDATE можно использовать подзапросы:

UPDATE employees

SET salary = salary + 5000

WHERE department_id = (

SELECT id FROM departments WHERE name = 'IT'

);

Здесь UPDATE зависит от результата подзапроса.

UPDATE без SET

В некоторых СУБД (например, SQL Server) можно писать:

UPDATE table_name

SET column = column;

На вид — бесполезно. Но так можно снимать блокировки или триггерить AFTER UPDATE.

Можно использовать TOP и LIMIT при UPDATE

UPDATE TOP (10) users SET active = 0; -- для SQL Server

UPDATE users SET active = 0 LIMIT 10; -- для MySQL

А вот для PostgreSQL такого механизма нет - надо будет через CTE реализовывать.

UPDATE — мощный инструмент. Он нужен везде, где данные живут и меняются. Но:

  • всегда помни про WHERE,

  • учитывай блокировки,

  • и знай фишки СУБД (RETURNING, JOIN, LIMIT).

Напоминаю про свой канал На связи: SQL Присоединяйся для обсуждения вопросов по изучению SQL.

Показать полностью
[моё] SQL Аналитик Аналитика Системный аналитик Самообразование IT Текст Длиннопост
1
0
VelStyling
VelStyling
Серия SQL: знакомство

INSERT INTO - Простая команда с непростым характером⁠⁠

2 месяца назад

INSERT — это оператор для добавления новых строк в таблицу.

Классика выглядит так:

INSERT INTO customers (name, age, city)

VALUES ('Оля', 28, 'Москва');

Главные слова:

  • INSERT INTO — куда добавляем,

  • VALUES — что именно добавляем.

INSERT INTO - Простая команда с непростым характером

А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!

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

INSERT INTO products (name, price) VALUES ('Яблоки', 100);

INSERT INTO products (name, price) VALUES ('Груши', 120);

-- и так 1000 раз 😅

INSERT INTO products (name, price)

VALUES

('Яблоки', 100),

('Груши', 120),

('Бананы', 150);

Один INSERT на 1000 строк работает быстрее, чем 1000 отдельных запросов, потому что база открывает и закрывает транзакцию только один раз.

Транзакция — это логическая единица работы с базой данных, набор действий (обычно INSERT, UPDATE, DELETE и т. д.), которые выполняются как одно целое.
База гарантирует, что или все действия внутри транзакции будут выполнены, или не выполнится ни одно.

Например:

  • Перевод денег с карты на карту.

    1. Снять деньги с карты А.

    2. Зачислить деньги на карту Б.

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

Так вот, даже если мы явно в коде не прописываем начало и окончание транзакции, то наша база автоматически оборачивает наш запрос началом и окончанием транзакции

BEGIN;
INSERT INTO products (name, price) VALUES ('Яблоки', 100);
COMMIT;

BEGIN;
INSERT INTO products (name, price) VALUES ('Груши', 120);
COMMIT;

-- и так 1000 раз 😅

BEGIN;

INSERT INTO products (name, price)

VALUES

('Яблоки', 100),

('Груши', 120),

('Бананы', 150);

COMMIT;

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

Оптимальный размер батча — подбирается экспериментально. Обычно от 5k до 50k строк за один заход.

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

CREATE TABLE users (

id SERIAL, -- автоинкремент

name TEXT

);

INSERT INTO users (name) VALUES ('Оля'); -- id = 1

INSERT INTO users (name) VALUES ('Маша'); -- id = 2

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

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

  • Автоинкремент экономит время и предотвращает ошибки.

Но автоинкремент не гарантирует, что значения в поле id будут "последовательными", он гарантирует, что значения в этом поле будут уникальными.

Получается, что при INSERT в поле с автоинкрементом могут быть "дырки".
Это получается, например, в следующих кейсах:
1. отмененная вставка:
- Сделали INSERT, база выделила id = 5.
- Транзакцию откатили (ROLLBACK).
- Id 5 пропал, следующие вставки идут с 6.
2. Удаление строк:
- Если удалить записи, то номера исчезнут, но новые не «подтянутся» к освободившимся.
3. Параллельная вставка:
- Две транзакции одновременно вставляют строки.
- Каждая получает свой id, даже если одна потом откатится → тоже появляются пропуски.

В PostgreSQL номера генерируются через объект SEQUENCE.

Если ты вручную добавил строку с id = 9999, а sequence «застрял» на 5000.
То, когда при следующих попытках осуществить вставку строки БД дойдет до значения 9999 - этот INSERT упадёт с ошибкой: «дубликат ключа». Потому что sequence не обновляется автоматически! Sequence не смотрит на максимальный id в таблице. Он просто отдаёт своё следующее число.

Решение может быть:

ALTER SEQUENCE … RESTART WITH <нужный номер>.

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

CREATE TRIGGER bonus

AFTER INSERT ON orders

FOR EACH ROW

EXECUTE FUNCTION bonus_cnt();

Каждая новая строка вызовет bonus_cnt().
Даже если ты вставляешь 1000 строк, триггер вызовется 1000 раз.

Есть еще такое понятие как UPSERT.

UPSERT = INSERT + UPDATE, т.е. «вставить новую запись, а если такая запись уже есть — обновить существующую».

Пример: у нас есть таблица users с колонкой id. Мы хотим добавить пользователя с id = 1.

  • Если пользователя нет → вставляем.

  • Если пользователь есть → обновляем его данные.

Но такой INSERT + UPDATE в каждой СУБД реализуется по разному.
Одна и та же логика «вставить или обновить» в коде не переносится напрямую между базами. То, что называется UPSERT в PostgreSQL, будет работать иначе в MySQL и совсем иначе в SQL Server.

INSERT ... ON CONFLICT (id) DO UPDATE ... -- Вставляет запись, если id ещё нет; иначе обновляет эту запись. PostgreSQL

INSERT ... ON DUPLICATE KEY UPDATE ... -- MySQL

MERGE ... -- SQL Server

По сути, UPSERT — это концепция, а не единый универсальный оператор.

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

А еще, иногда база говорит: «Вставка прошла успешно», но на диск ещё ничего не записано.

  • PostgreSQL и MySQL (InnoDB) используют write-ahead log: запись сначала идёт в журнал, потом — на диск.

  • Если прямо в этот момент выключить сервер → можно потерять часть данных.

Решается настройкой fsync, commit и уровней надёжности транзакций.

INSERT — это не просто «добавить данные». Это про индексы, блокировки, автоинкременты, батчи и даже про то, как СУБД пишет на диск.

Показать полностью 1
[моё] SQL Аналитик Аналитика База данных Выгорание экрана Новая работа Большие данные Таблица Длиннопост
5
VelStyling
VelStyling
Серия SQL: знакомство

LIMIT и интересные кейсы с ним. Или почему LIMIT - друг аналитика⁠⁠

3 месяца назад

Обычно все знают самое базовое применение LIMIT - ограничение строк выдачи в запросе.

LIMIT 10 -> показать 10 строк

Но применение LIMIT не ограничивается только ограничением :-).
Есть интересные кейсы по использованию LIMIT в своих запросах.
Об этом чуть ниже.

А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!

LIMIT и интересные кейсы с ним. Или почему LIMIT - друг аналитика

И так, какие же кейсы есть с применением LIMIT

  1. LIMIT + OFFSET

    Многие помнят про LIMIT, но забывают про то, что можно еще применять сдвиг.

    SELECT *
    FROM users
    ORDER BY id
    LIMIT 10 OFFSET 20;

    Этот запрос вернёт 10 строк, начиная с 21-й.

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

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

  2. LIMIT в UPDATE и DELETE

    Да, да - в этих операторах тоже можно использовать LIMIT, не только в SELECT

    DELETE FROM logs ORDER BY created_at ASC LIMIT 1000;

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

  3. LIMIT в подзапросах

    Об этом часто помнят, т.к. подзапрос является запросом, а в запросах использование LIMIT - вполне привычное дело.


    Найдем самый дорогой заказ:

    SELECT *

    FROM orders

    WHERE id = (SELECT id FROM orders ORDER BY price DESC LIMIT 1);

    Это иногда проще, чем возиться с MAX() и джойнами.

  4. LIMIT vs FETCH … WITH TIES

    В некоторых СУБД (например, SQL Server, Oracle) есть фича:

    SELECT *

    FROM products

    ORDER BY price DESC

    FETCH FIRST 3 ROWS WITH TIES;

    Такой запрос вернёт не просто 3 строки, а все строки, у которых цена такая же, как у третьей записи.
    (например, если на третьем месте несколько товаров с одинаковой ценой).


    LIMIT показывает первые N строк после сортировки
    А вот WITH TIES говорит: «Выдай все строки, которые наравне с последней по значению сортировки».


    В других СУБД такой синтаксис можно реализовать через LIMIT + подзапрос с оконной функцией RANK()

  5. LIMIT 0

    Очень полезный трюк.

    SELECT * FROM users LIMIT 0;

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

  6. LIMIT в CTE (PostgreSQL)

    Можно ограничивать данные прямо на уровне общего табличного выражения (CTE), чтобы уменьшить нагрузку:

    WITH top_orders AS (

    SELECT * FROM orders ORDER BY price DESC LIMIT 100

    )

    SELECT * FROM top_orders WHERE customer_id = 42;

Так мы сначала берём только 100 дорогих заказов, а потом фильтруем по клиенту.

В итоге LIMIT — это не просто «дай 10 строк», а инструмент для оптимизации, постраничной навигации, аккуратных обновлений и даже для защиты от перегруза.

Подписывайся на мой ТГ канал На связи: SQL, чтобы узнавать/вспоминать еще больше нюансов SQL запросов.

Показать полностью 1
[моё] Эмоциональное выгорание Аналитика Аналитик Анализ данных SQL Ms SQL База данных Системный анализ Системный аналитик Длиннопост
0
1
VelStyling
VelStyling
Серия SQL: знакомство

ORDER BY - это как уборка в шкафу. Вещи можно разложить по цвету, по размеру или просто свалить все в кучу⁠⁠

3 месяца назад

ORDER BY — штука вроде бы простая («отсортируй строки»), но там есть много нюансов, про которые мы просто не помним или не пользуемся.

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

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

ORDER BY - это как уборка в шкафу. Вещи можно разложить по цвету, по размеру или просто свалить все в кучу
  1. Блок с ORDER BY предназначен для сортировки результата выборки.
    По умолчанию сортировка ASC (по возрастанию). Можно явно писать:

ORDER BY age ASC -- от младших к старшим
ORDER BY age DESC -- от старших к младшим

2. Можно сортировать сразу по нескольким столбцам:

ORDER BY country, city

Сначала сортируются страны, внутри них — города.

3. Можно писать не имя, а номер колонки в SELECT:

SELECT name, age
FROM users
ORDER BY 2 DESC; -- сортируем по age

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

4. NULL в ORDER BY требует особого внимание.
NULL в разных БД обрабатывается по-разному.

В PostgreSQL:

  • ASC → NULL идут в конце

  • DESC → NULL идут в начале

можно явно писать:

ORDER BY age ASC NULLS FIRST;
ORDER BY age DESC NULLS LAST;

В MySQL и SQL Server правила отличаются:

  • в MySQL NULL всегда считаются «меньше всего» (т.е. идут первыми в ASC).

  • в SQL Server можно управлять через ISNULL()/COALESCE().

В MySQL и SQL Server нельзя использовать NULLS FIRST или NULLS LAST при сортировке,

Для SQL Server используем:

ORDER BY ISNULL(age, 9999) ASC;
ORDER BY COALESCE(age, 9999) ASC;

Здесь NULL мы заменяем на большое число (9999), и оно уходит в конец сортировки по возрастанию.
А если хотим NULL в начало — ставим что-то маленькое, например -1.

Для MySQL есть поведение по умолчанию:

  • При ASC → NULL идут первые

  • При DESC → NULL идут последние

А если нужно наоборот, то делаем хитрость с IS NULL:

ORDER BY age IS NULL, age ASC;

Здесь age IS NULL вернёт 1 для NULL и 0 для обычных значений.
SQL сначала отсортирует по этому условию (0 → 1), а потом уже по age.

5. Можно сортировать не только по полям, но и по функциям.

ORDER BY LENGTH(name) DESC;
ORDER BY purchase_amount * discount;

6. Случайная сортировка - имеет место быть. Но очень "дорога" в использовании на больших объемах.

-- PostgreSQL / SQLite
ORDER BY RANDOM()

-- MySQL
ORDER BY RAND()

Часто случайная сортировка используется при тестировании на небольших объемах.
- хотим показать пользователю случайный товар в магазине
- хотим проверить, как работает приложение, не завися от конкретного порядка записей
- рекомендательные системы: в выдачу добавляем случайный товар, чтобы не зацикливать пользователя только на "популярных" товарах.
- игры или викторины: рандомная выдача вопросов.

7. Есть еще такое понятие как COLLATION (сравнение строк).

ORDER BY учитывает локаль (collation). Поэтому, например, русские буквы могут сортироваться по-разному в разных СУБД:

  • А может идти перед а, или наоборот.

  • Можно явно указать сортировку:

ORDER BY name COLLATE "C" -- по байтовому значению
ORDER BY name COLLATE "ru_RU" -- по русскому алфавиту

Представь, что у тебя есть список имён:
['Елена', 'елена', 'Жанна', 'Анна']

Когда ты пишешь в SQL:

SELECT * FROM users ORDER BY name;

база должна решить:

  • считать ли «Елена» и «елена» одинаковыми?

  • что идёт раньше: «Ж» или «А»?

  • как сравнивать буквы с диакритикой: «é» vs «e»?

Вот именно на эти вопросы отвечает collation.

То есть COLLATION — это как правило сортировки в библиотеке: от него зависит, где именно окажется твоя книга.

То есть, ORDER BY — это не просто «отсортировать», а ещё и про то:

  • куда денутся NULL

  • как сортируются строки (с учётом локали)

  • можно ли сортировать по выражениям или случайно

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

Показать полностью
[моё] Аналитика Математика Урок Эмоциональное выгорание SQL Ms SQL Аналитик Анализ данных База данных Программирование Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии