首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

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

2012-03-28 
求一条去除重复资料加总的SQLSQL codecreate table t( f1 varchar2(20),f2 varchar2(20),f3 varchar2(30),

求一条去除重复资料加总的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**/
[解决办法]
实际测试,请参考:

热点排行