使用Aggregate对行进行求和

时间:2012-12-03 10:01:16

标签: sql oracle

好的我很抱歉模糊的标题因为我不知道怎么说这个。 这是我的问题。

CREATE TABLE dwd_temp (con VARCHAR2(10),line_no VARCHAR2(10),wgt NUMBER,pallet     VARCHAR2(10));
insert INTO  dwd_temp VALUES('a','1',10,NULL);
insert INTO  dwd_temp VALUES('b','1',11,'x');
insert INTO  dwd_temp VALUES('b','2',12,'x');
insert INTO  dwd_temp VALUES('b','3',13,'y');

现在我的要求是'替换'具有相同“托盘”的线条 这是最后我需要一个查询有一行读取 b,1,23,x代替两条线,托盘为“x”。 所以我的结果应该是

 a           1          10           null
 b           1          23            x
 b           3          13            y 

2 个答案:

答案 0 :(得分:1)

VARCHAR2建议您使用Oracle db。

select 
  con, min(line_no), sum(wgt), pallet
from dwd_temp
group by pallet, con;

select 
  min(con), min(line_no), sum(wgt), pallet
from dwd_temp
group by pallet;

SQLFiddle

答案取决于你想要的分组。

答案 1 :(得分:0)

select con, min(line_no), sum(wgt), pallet
from dwd_temp 
group by con, pallet