17,377
社区成员
发帖
与我相关
我的任务
分享
ID xmid sl ljsl
1 001 2 2
2 002 3 3
3 003 2 2
4 001 1 3
5 004 2 2
6 006 1 1
7 001 2 5
8 002 -2 1
merge into table_name a using (select id,sum(s1)over(partition by xmid order by id) as ljsl from table_name) b
on b.id = a.id
when matched then
set a.ljsl = b.ljsl;
commit;
MERGE INTO T A
USING (WITH T1 AS(SELECT T.*,ROWID AS RID,sum(s1)over(partition by xmid order by id) AS SL)
SELECT * FROM T1)
ON(A.ROWID=T1.RID)
WHEN MATCHED THEN UPDATE SET A.LJSL=B.SL
update table_name a
set a.ljsl = (select sum(s1)over(partition by xmid order by id) as ljsl from table_name b where b.id = a.id)
where exists(select null from table_name b where b.id = a.id);
update table_name set ljsl=sum(s1)over(partition by xmid order by id)
这个有语法错误,对oracle的update语句不得要领
select id,xmid,s1,sum(s1)over(partition by xmid order by id) as ljsl from table_name;