RFM-сегментация в SQL: задачи с собеседований

15 задач Лёгкие, средние, сложные С эталонными решениями Решение в браузере
RFM — классическая поведенческая сегментация клиентов в e-commerce. Идея: оценить каждого клиента по трём осям — Recency (как давно покупал), Frequency (как часто) и Monetary (на сколько). По каждой оси клиентов делят на группы (обычно квинтили 1-5 через NTILE), а комбинация трёх оценок задаёт сегмент. На product-собесе крупных ритейлеров (Озон, Wildberries, Лента) дают задачу «построй RFM-сегменты на SQL» — проверяют владение оконными функциями, NTILE и CASE. Здесь 8 задач на RFM: от простого скоринга до выделения именованных сегментов.
Начать решать задачи →

Все задачи на «RFM-анализ» (15)

FAQ: частые вопросы про rfm-анализ

Что такое RFM-сегментация?

RFM оценивает клиента по трём метрикам: Recency — давность последней покупки (чем свежее, тем лучше), Frequency — число покупок за период, Monetary — суммарная выручка от клиента. По каждой метрике клиента относят к группе (часто 1-5), а тройка оценок задаёт сегмент.

Как посчитать RFM-оценки в SQL?

Recency — разница между текущей датой и MAX(даты покупки) по клиенту, Frequency — COUNT покупок, Monetary — SUM суммы. Затем каждую метрику разбивают на группы оконной функцией NTILE(5) OVER (ORDER BY ...) — она делит клиентов на 5 примерно равных по размеру корзин.

Какие сегменты выделяют по RFM?

Типичные именованные сегменты: «Чемпионы» (недавно, часто, много), «Лояльные», «Под угрозой оттока» (покупали часто, но давно не возвращались), «Спящие» и «Новички». С каждым сегментом маркетинг работает по-разному.

Чем RFM отличается от ABC-анализа?

RFM сегментирует клиентов по поведению (давность, частота, сумма) и отвечает «кто наши ценные и уходящие клиенты». ABC ранжирует товары по вкладу в выручку и отвечает «что приносит деньги». Это разные плоскости — клиенты против ассортимента.

Связанные темы SQL

Агрегации · JOIN-запросы · Оконные функции · CTE (Common Table Expressions) · Подзапросы · Работа с датами · Строковые функции · Условная логика

Открыть весь SQL-тренажёр (576 задач) →