当前位置: 代码迷 >> Oracle管理 >> 求一条去除重复资料加总的SQL解决思路
  详细解决方案

求一条去除重复资料加总的SQL解决思路

热度:1012   发布时间:2016-04-24 06:22:15.0
求一条去除重复资料加总的SQL
SQL code
create table t( f1 varchar2(20),  f2 varchar2(20),  f3 varchar2(30),  f4 number,  f5 number,  f6 number);  insert into t values('A','S001','C001',4,3,5);insert into t values('A','S001','C001',4,7,1);insert into t values('B','S001','C001',6,0,1);insert into t values('C','S001','C001',7,4,4);insert into t values('D','S001','C001',6,3,5);insert into t values('E','S001','C001',9,3,8);insert into t values('F','S001','C001',1,2,2);

假设F1和F2是一样的,例如A,S001这样算是重复的,F4只做一次加总(F4一定是一样的),F5和F6是直接SUM就可以。怎么处理。
就是我要得到一条记录是 SUM(F4),SUM(F5),SUM(F6)是 33,22,26而不是 37,22,26,要怎么写一条SQL

------解决方案--------------------
SQL code
SELECT SUM(F4),SUM(F5),SUM(F6)  FROM (SELECT SUM(DISTINCT F4) AS f4 ,SUM(F5) AS f5,SUM(F6) AS f6 FROM t  GROUP BY f1,f2)t/**(沒有資料行名稱)    (沒有資料行名稱)    (沒有資料行名稱)33    22    26**/
------解决方案--------------------
实际测试,请参考:
  相关解决方案