← Назад к вопросам
SQL: Найти VIP клиентов по правилу Парето
2.0 Middle🔥 111 комментариев
Условие
У вас есть таблица orders:
- order_id (integer)
- customer_id (integer)
- amount (decimal)
Найдите клиентов, которые генерируют 80 процентов выручки (правило Парето).
Ожидаемый результат:
Таблица с колонками: customer_id, total_spent, cumulative_pct
Выведите только клиентов в топ-80 процентов кумулятивной выручки.
Источник: задача на кумулятивные расчеты
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Правило Парето: 80/20
Это правило гласит, что 80% выручки генерируют всего 20% клиентов. Такие клиенты называются VIP и требуют особого внимания.
SQL Решение
WITH customer_totals AS (
SELECT customer_id, ROUND(SUM(amount), 2) as total_spent
FROM orders
GROUP BY customer_id
),
ranked_customers AS (
SELECT
customer_id,
total_spent,
SUM(total_spent) OVER (ORDER BY total_spent DESC) as cumulative_revenue,
SUM(total_spent) OVER () as total_revenue
FROM customer_totals
)
SELECT
customer_id,
total_spent,
ROUND(100.0 * cumulative_revenue / total_revenue, 2) as cumulative_pct
FROM ranked_customers
WHERE cumulative_revenue / total_revenue <= 0.80
ORDER BY total_spent DESC;
Стратегия
- Выявление VIP клиентов из топ-80% выручки
- Персональный менеджер для каждого
- Экстра внимание к удержанию
- Специальные условия и предложения
Похожие вопросы
- SQL: Посчитать воронку конверсии
- SQL: Найти товары, которые покупали вместе
- SQL: Скользящее среднее за 7 дней
- SQL: Посчитать DAU и WAU
- SQL: Анализ повторных покупок
- SQL: Year-over-Year сравнение выручки
- SQL: Найти товары с падением продаж
- SQL: Расчет конверсии по шагам регистрации
- SQL: Расчет времени до первой покупки
- SQL: Вывести третью страницу для каждого пользователя
- Продуктовый кейс: Запуск новой страны
- SQL: Найти первую и последнюю покупку каждого клиента
- SQL: Найти пользователей с регулярными платежами
- SQL: Процентиль выручки по клиентам
- SQL: Cumulative sum (нарастающий итог)
- SQL: Расчет LTV по когортам
- SQL: Расчет ARPU по источникам трафика
- SQL: Определить время между событиями (LAG/LEAD)
- Вероятность: игра с тремя дверями
- SQL: Найти пользователей без активности более 30 дней