Intern
45
-- Найти топ5 % пользователей с наибольшим количеством заказов по name
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Для поиска топ 5% пользователей с наибольшим количеством заказов по имени, можно использовать SQL-запрос с агрегацией и оконной функцией для вычисления процента.
Пример на SQL:
WITH user_order_counts AS (
SELECT
name,
COUNT(*) AS order_count
FROM orders
GROUP BY name
), ranked_users AS (
SELECT
name,
order_count,
NTILE(100) OVER (ORDER BY order_count DESC) AS percentile_rank
FROM user_order_counts
)
SELECT name, order_count
FROM ranked_users
WHERE percentile_rank <= 5
ORDER BY order_count DESC;
Здесь:
- Сначала считаем количество заказов для каждого пользователя (по имени).
- Затем с помощью NTILE(100) разбиваем пользователей на 100 групп по убыванию количества заказов.
- Выбираем пользователей, попавших в верхние 5% (percentile_rank <= 5).
Если база не поддерживает NTILE, можно использовать другие методы, например, вычислить порог по количеству заказов и выбрать пользователей с количеством заказов выше этого порога.