oracle 多字段分组取每组求和

如题所述

select t.* ,
sum(统计字段名) over(partition by 分组字段1),
sum(统计字段名) over(partition by 分组字段2),
sum(统计字段名) over(partition by 分组字段3),
......
sum(统计字段名) over(partition by 分组字段n)
from t ;
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-23
select sum(字段名) from tab_name group by col1,col2,col3追问

select 我也要获取多字段?

追答

select col1,col2,col3,sum(字段名) from tab_name group by col1,col2,col3

追问

group by 能指定字段吗?

追答

group by col1,col2,col3,后面就是你要分组的字段啊

第2个回答  2014-01-23
select sum(col1),sum(col2),sum(col3) from tab_name group by col1,col2,col3追问

select col1,col2,col3,……sum(字段名) from tab_name group by col1,col2;这样可以吗?

追答

col3 必须也得在 group by 中,否则没有分组的字段是不能直接在select中进行查询的,放到类似sum的函数中可以。

追问

能列个例子吗?

追答

select sum(col1),sum(col2),max(col3) from tab_name group by col1,col2

试下这个
关键你的需求是什么,好给你明确的答案

select sum(col1),sum(col2),max(col3) from tab_name group by col1,col2

试下这个
关键你的需求是什么,好给你明确的答案

追问

select col1,col2,col4,sum(col3) from table (col1,col2,col3,col4);table中数据 col1, col2,col3,col4 (1 1 212 a ,1 1 333 b,2 2 212 a,3 3 422 c, 2 2 323 a)

追答

问题一定要清晰啊
你这是啥意思啊,按col4中的a,b,c进行分组求col1,col2,col3分别的和啊?
select sum(col1),sum(col2),sum(col3),col4, from table group by col4;

还是按col1, col2,col4进行分组求col3的和
select col1,col2,col4,sum(col3) from table group by col1,col2,col4;

本回答被提问者采纳
相似回答