请教各位大侠一个问题。
现在有张很大的表T1,关键信息简化成以下表格
co1(id) col2(value)
1 10.0
2 20.0
3 30.0
4 40.0
...
因为1和2属于同一个组,想把2的value加到1上去,合并第1行和第2行,同理需要合并第3行和第4行
得到表格T2
co1(id) col2(value)
1 30.0
3 70.0
...
小弟知道用sum和group by可以合并value,但是col1的id值不一样,没法简单的操作。
所以想请教各位有什么方法能解决这个问题。谢谢!
------解决思路----------------------
SELECT 函数(id),SUM(value)
FROM TB
GROUP BY 函数(id)
那么可以类似这样,如果这个函数认为它们是一组的,那么他们就应该返回相同的标量,根据这个标量分组
------解决思路----------------------
-- 试试这个,跟你的数据顺序没有关系 。
drop table t
go
create table t (col1 varchar(30) , col2 int)
go
insert into t (col1,col2)
values('id1',10.0),('id2',20.0),('id3',30.0),('id4',40.0),('id5', 50.0)
go
with mt as (
select ROW_NUMBER() over(order by getdate()) rn , col1, col2
from t
)
select a.col1 , a.col2 , isnull(a.col2,0) + ISNULL( b.col2 , 0) result
from mt a inner join mt b on a.rn = b.rn - 1
where a.rn % 2 = 1
go
(5 行受影响)
col1 col2 result
------------------------------ ----------- -----------
id1 10 30
id3 30 70
(2 行受影响)
------解决思路----------------------
那你得有个代表ID与其包含ID的表啊