**Контекст:** Реальный запрос от CRM-маркетолога крупного онлайн-ритейлера. Нужно разбить клиентов на сегменты по **RFM-модели** — Recency (давность), Frequency (частота), Monetary (сумма).
**Данные:**
[см. код в задании]
Рассматриваем только `status = 'completed'`.
**Задание:**
1. Для каждого пользователя посчитать:
- `recency_days` — сколько дней прошло с последней покупки (от сегодня)
- `frequency` — число заказов за весь период
- `monetary` — сумма трат
2. Разбить юзеров на **квинтили** (5 корзин) по каждому измерению:
- R: **5** = самые свежие, **1** = давно не покупали
- F: **5** = чаще всего, **1** = редко
- M: **5** = больше всех тратят, **1** = мало
3. Присвоить «сегмент» по правилу:
- `R >= 4 AND F >= 4 AND M >= 4` → **"champions"** (топ-клиенты)
- `R >= 4 AND F <= 2` → **"new_customers"**
- `R <= 2 AND F >= 4` → **"at_risk"** (лояльные, но уходят)
- `R <= 2 AND F <= 2` → **"lost"**
- остальные → **"regular"**
**Ожидаемые колонки:** `user_id, R, F, M, segment`
NTILE segmentation RFM CRM window-functions