你的time,不一样。如果去掉重复的。是time这个字段不要,还是要哪一条数据?
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计、做网站、孝感网络推广、微信小程序定制开发、孝感网络营销、孝感企业策划、孝感品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供孝感建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
你用的开窗函数,一般都是用来做排序的,去掉重复的,还是要用分组。
你这个需求很不明确
如果只是按id来汇总,直接group by id就可以
如果想跳开相同AID,可以用distinct关键字跳开就行
create Table T
(
id int,
a int,
b int
)
Insert into t values(1,1,1)
Insert into t values(2,2,1)
Insert into t values(3,3,1)
Insert into t values(4,4,1)
Insert into t values(5,5,1)
Insert into t values(6,6,1)
/*思路:
id可能不连续,所以先用id排序,产生一个记录号id2
然后按3条记录一组产生一个分组号G,接着按G分组求和,id取最大
最后更新
*/
With CT
AS
(
Select max(id) As id,SUM(a) As A,SUM(B) As B
from
(
Select *,(id2+2)/3 As G
from (Select *,ROW_NUMBER() over(order by id) As id2 from T) S
)M Group by G
)
Update T Set a=CT.A-T.a,b=CT.B-T.b
From CT
where T.id=CT.id