Использование таблицы
t:([]c1: 3 4 7 2 4.0;c2: 2 8 10 1 9.0;c3:5 8 13 2 11.0)
c1 c2 c3
3 2 5
4 8 8
7 10 13
2 1 2
4 9 11
Мне нужно обновить 3 новых столбца (c1M,c2M,c3M)
, где:
для первого ряда:
c1M:avg(c1,c2,c3)
c2M:avg(c1,c2)
c3M:c3
другие строки:
c1M:avg(c1,c2,c3)
c2M:avg(prev c1M,prev c2M)
c3M:max(c3,c1M,c2M)
Я могу сделать первый ряд, используя
t:update c1M:avg(c1,c2,c3),c2M:avg(c1,c2),c3M:c3 from t where i=0
c1 c2 c3 c1M c2M c3M
3 2 5 3.3 2.5 5
4 8 8 0n 0n 0N
7 10 13 0n 0n 0N
2 1 2 0n 0n 0N
4 9 11 0n 0n 0N
Не уверен, как действовать жестко. Я пробовал что-то вроде:
update c1M:avg(c1;c2;c3),c2M:avg(prev c1M;prev c2M),c3M:c3|c1M|c2M from t where i>0
Но не повезло.
Результат для этого примера должен быть:
c1 c2 c3 c1M c2M c3M
3 2 5 3.3 2.5 5.0
4 8 8 6.7 2.9 8.0
7 10 13 10 4.8 13.0
2 1 2 1.7 7.4 7.4
4 9 11 8.0 4.5 11.0
Может кто-нибудь мне помочь?