Таблица:
| User_ID | Red | Blue | Green | Rating |
| a | 23 | 33 | 42 | 99 |
| a | 56 | 45 | 62 | 45 |
| a | 23 | 49 | 28 | 67 |
| b | 39 | 59 | 10 | 87 |
| b | 18 | 28 | 59 | 38 |
| b | 40 | 50 | 38 | 94 |
В результате я хочу получить отдельную строку user_id со средневзвешенными значениями красного, синего и зеленого цветов на основе столбца рейтинга.
цвет * рейтинг / (сумма оценок для а или б)
//Редактировать
Не могу понять, как это сделать. Пробовал следующее, но это была тщетная попытка
WITH
averages AS (
SELECT
User_ID,
SUM(rating) AS average
FROM
` project.dataset.table`
GROUP BY
1)
SELECT
averages.User_ID,
Red*(Rating/average),
Blue*(rating/average),
Green*(rating/average)
FROM
`project.dataset.table` a
LEFT JOIN
averages
ON
a.user_id = averages.user_id