Часто нужно не только считать суммы и средние, но и находить дыры в данных: пустые даты, отсутствующие ID, пропавшие заказы. SQL умеет это делать без скриптов и процедур.
В этом посте:
• Построение календаря для поиска дней без событий.
• Проверка целостности ID и нахождение «дыр».
• Анализ длины пустых промежутков во временных рядах.
Это помогает находить ошибки, следить за качеством данных и строить надёжную аналитику.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥10❤7🤝2👎1
Индексы: когда они вредят вместо помощи!
Разбираем типичные ошибки при работе с индексами. Неправильное использование может замедлить базу данных вместо ускорения.
Каждый индекс замедляет
При каждой вставке СУБД обновляет все 4 индекса, что сильно замедляет запись.
Функции делают индексы бесполезными:
Правильно без функций:
Порядок столбцов критичен:
Работает для поиска по
🔥 Поэтому используйте
➡️ SQL Ready | #практика
Разбираем типичные ошибки при работе с индексами. Неправильное использование может замедлить базу данных вместо ускорения.
Каждый индекс замедляет
INSERT/UPDATE операции:CREATE INDEX idx_user_name ON users(name);
CREATE INDEX idx_user_email ON users(email);
CREATE INDEX idx_user_phone ON users(phone);
CREATE INDEX idx_user_city ON users(city);
При каждой вставке СУБД обновляет все 4 индекса, что сильно замедляет запись.
Функции делают индексы бесполезными:
SELECT * FROM orders WHERE YEAR(order_date) = 2024;
-- Индекс на order_date не используется
Правильно без функций:
SELECT * FROM orders WHERE order_date >= '2024-01-01' AND order_date < '2025-01-01';
Порядок столбцов критичен:
CREATE INDEX idx_user_city_age ON users(city, age);
Работает для поиска по
city или city+age, но бесполезен для поиска только по age.🔥 Поэтому используйте
EXPLAIN для проверки, что индексы действительно работают!Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥9❤7
В этой шпаргалке собраны ключевые приёмы для работы с пропущенными значениями: проверка, замена, защита от ошибок, гибкая логика условий и поиск экстремальных значений. Они применяются при аналитике, подготовке отчётов и построении корректных продакшн-запросов.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤8🔥4🤝2
Например, реляционные SQL-базы обеспечивают строгую структуру и транзакционность (ACID), а NoSQL-решения предлагают гибкость, горизонтальное масштабирование и высокую доступность.
На картинке — основные классы баз данных и их подвиды.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍10❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собрана огромная база реальных вопросов по бэкенду, DevOps, Data Science и другим направлениям. Всё структурировано по темам и приближено к формату собеседований в компаниях. Это именно тот ресурс, который нужно держать под рукой!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥6🤝1
Сегодня разберём мини-задачу по геймификации: соберём отчёт по ставкам и выигрышам игроков. Поймем баланс игры, выявим активных участников и посчитаем прибыль системы.
В этой задаче:
• Считаем общий объём ставок и выигрышей;
• Определяем топ-5 игроков и их «удачливость»;
• Смотрим итоговый доход системы.
Такой приём можно использовать не только в играх, но и в любых системах с «ставками» и «возвратами»
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥9❤6
В этой статье:
• Определение исходной точки на примере таблицы заказов
• Шаблон построения когорт и связывание с заказами через CTEs
• Разбор edge-кейсов, построение LTV по когортам и RFM-анализ с сегментацией🔊 Продолжай чтение на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥7👍5
Forwarded from GMONIT – Fullstack Observability платформа
18 сентября на техническом вебинаре «Когда разработчику нужно задуматься об ИБ? Observability безопасности» обсудим:
🛡 Ред флаги в работе программистов.
🛡 Обеспечение безопасности на каждом этапе SDLC.
🛡 План действий для непосредственного первого звена в цикле разработки.
Также покажем, как платформа GMonit позволяет выстроить непрерывный процесс мониторинга приложений и находить уязвимости.
⏰ Время встречи: 17:00–18:00 (Мск)
🔗 Регистрация по ссылке!
❤3👍1🤝1
С помощью
ROW_NUMBER, RANK, DENSE_RANK, NTILE и PERCENT_RANK можно добавлять к каждой строке информацию о её позиции, ранге или квантиле прямо в запросе. В этом гайде:
• Присвоение уникальных номеров строкам с ROW_NUMBER();
• Разбор разницы между RANK() и DENSE_RANK() при одинаковых значениях;
• Сегментация с NTILE() и относительное положение с PERCENT_RANK().
Это позволяет строить топ-N, сегментировать клиентов и анализировать данные.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍9❤6🤝1