我想根据该人的几个所有行的字段平均值来更新我的表中的AvgScore记录,例如,我的表格如下:
rDate | Name | Score | AvgScore
--------------------------------------------------
01/02/2018 | Dave | 12 |
02/02/2018 | Bob | 15 |
02/02/2018 | Dave | 7 |
03/03/2018 | Bob | 18 |
因此,在运行查询后,它应该如下所示:
rDate | Name | Score | AvgScore
--------------------------------------------------
01/02/2018 | Dave | 12 | 12
02/02/2018 | Bob | 15 | 15
02/02/2018 | Dave | 7 | 9.5
03/03/2018 | Bob | 18 | 16.5
因此,对于每条记录,它将选择所有记录,其中Name =' personsName'在当前记录之前获得平均分,然后更新当前记录。
目前我正在使用vb.net逐行执行此操作,但这需要永远!
答案 0 :(得分:0)
你可以试试这个:
update t
set avgscore = (select avg(t2.score)
from t as t2
where t2.name = t.name and t2.rdate <= t.rdate
);