Как написать запрос, чтобы посчитать процент от суммы записей группы?
Есть две таблицы со столбцами:
users(id, country_id)
orders(id, user_id, amount_usd)
Нужно написать запрос, который бы выводил: country_id, user_id и долю от дохода, полученную со страны регистрации пользователя (country_id):
Пример вывода:
country_id user_id percent
RU 12 6.33
BY 112 1.11
RU 632 2.51
UA 231 4.65
Ответы (1 шт):
Автор решения: Андрей Моциевич
→ Ссылка
Вот этот запрос соответствует задаче
SELECT
u.id,
ROUND((o.amount_usd /SUM(o.amount_usd) OVER (PARTITION BY u.country_id))* 100,2) AS percent
FROM users u
JOIN orders o
ON o.user_id = user_id
GROUP BY
u.id, u.country_id;