读书人

某两列值相同则把数据记录合并成一条

发布时间: 2012-12-23 11:28:15 作者: rapoo

某两列值相同,则把数据记录合并成一条,请教怎么完成?
Oracle环境

原始数据是比较复杂的语句查询出来,不能修改原始语句。

表结构

col1 col2 col3 col4 col5 col6 col7 ......
1 DB12102601928 001-000193-00 1 A 100
2 DB12102601928 001-000193-00 0 B 80
3 DB12102601928 001-000193-00 1 B 45
4 JB12102601928 002-000193-00 0 C 50
5 HB12102601928 003-000193-00 1 B 80

如果col2和col3相同则把记录合并成一条,其中col6记录需要汇总,结果如下:
col1 col2 col3 col4 col5 col6 col7 ......
1 DB12102601928 001-000193-00 1 A 225
4 JB12102601928 002-000193-00 0 C 50
5 HB12102601928 003-000193-00 1 B 80

谢谢。

[最优解释]


select min(col1),col2,col3,sum(col4),min(col5),sum(col6)
from t
group by col2,col3;


[其他解释]
--col1, col4,col5随便取值么?

select min(col1), col2, col3, min(col4), min(col5), sum(col6) from t group by col2, col3;

[其他解释]
其他列的数据怎么取?

读书人网 >oracle

热点推荐