Хотите понимать, какие действия выполняют пользователи подряд, где случаются разрывы и как быстро выявлять аномалии?
Сегодня в посте:
• Узнаём, как LAG и LEAD «сдвигают» строки для анализа предыдущих и следующих событий;
• Вычисляем разрывы между действиями и фильтруем нужные паттерны;
• Находим «спящих» пользователей или редкие события, чтобы улучшить аналитику.
Такой подход делает запросы компактными и ускоряет выявление закономерностей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5❤4🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собраны десятки курсов от ведущих университетов и компаний: начиная с базовых SELECT-запросов до оптимизации сложных баз данных и построения аналитических систем. Лекции, практические задания и реальные кейсы, чтобы сразу закреплять теорию на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥8🤝4😁3
Сегодня разберём мини-задачу по геймификации: соберём отчёт по аномальным результатам и подозрительным сессиям.
Сегодня в задаче:
• Находим игроков с нереальными результатами;
• Выявляем короткие сессии с высоким счётом;
• Определяем группы игроков, которые могут кооперироваться.
Такой приём помогает не только в играх, но и в любых системах с прогрессом, баллами или рейтингами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤6🔥5
В этой шпаргалке — set-операции SQL: от объединения уникальных и повторяющихся строк до пересечений и разностей выборок. Это основа для аналитики и репортинга, когда важно агрегировать данные из разных источников и строить комплексные отчёты.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥9❤3🤝2
UPSERT: вставляем или обновляем запись!
Нередко требуется добавить данные без риска дубликата. Реализуем
Задаём таблицу:
Пробная вставка:
Результат:
🔥 Такой приём избавляет от дубликатов и делает вставку надёжной.
➡️ SQL Ready | #практика
Нередко требуется добавить данные без риска дубликата. Реализуем
UPSERT — вставка при отсутствии и обновление при конфликте.Задаём таблицу:
CREATE TABLE users (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
email TEXT UNIQUE NOT NULL,
login_count INT NOT NULL DEFAULT 0
);
Пробная вставка:
INSERT INTO users (email, login_count)
VALUES ('alice@mail.com', 1);
UPSERT при конфликте (увеличиваем счётчик и сразу возвращаем результат):INSERT INTO users AS u (email, login_count)
VALUES ('alice@mail.com', 1)
ON CONFLICT (email) DO UPDATE
SET login_count = u.login_count + EXCLUDED.login_count
RETURNING email, login_count;
Результат:
email | login_count
----------------+------------
alice@mail.com | 2
🔥 Такой приём избавляет от дубликатов и делает вставку надёжной.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤10🔥5🤝1
Срок обещан один, а товар приехал позже - это сразу удар по доверию клиента и показателям сервиса.
Сегодня в задаче:
• Сравним обещанную дату доставки с фактической;
• Посчитаем количество дней задержки;
• Вернём список всех заказов с опозданием.
В результате получаем инструмент для контроля логистики: видно, где сбои и на сколько дней выходят из графика. Это основа для улучшения SLA и переговоров с перевозчиками.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤9🔥5🤝1