某两列值相同,则把数据记录合并成一条,请教怎么完成?
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;
------其他解决方案--------------------其他列的数据怎么取?