Я пытался сделать следующее:
CREATE TABLE T_example
(category number(1,0),
amount number(4,0),
amount2 number(4,0))
INSERT INTO T_example VALUES (1,20,40);
INSERT INTO T_example VALUES (1,30,40);
INSERT INTO T_example VALUES (2,5,60);
INSERT INTO T_example VALUES (2,15,60);
INSERT INTO T_example VALUES (2,30,60);
Как видите, все строки содержат одинаковое количество2 в своей категории. Теперь я хочу распределить сумму2 внутри каждой категории в соответствии с распределением суммы по категории.
UPDATE T_example
SET amount2 = amount2 * amount / SUM(amount) OVER (PARTITION BY category ORDER BY category);
Я хочу получить:
category - amount - amount2
1 - 20 - 16
1 - 30 - 24
2 - 5 - 6
2 - 15 - 18
2 - 30 - 36
Но код не работает. Там написано:
00934.00000 - «групповая функция здесь не разрешена»
Можете ли вы сказать мне, где я ошибаюсь?