在select子句中分组

时间:2017-05-11 11:41:08

标签: sql oracle

我希望按功能分组,如下所示。

select 
    sum(c1)
    ,sum(c2)
    ,c3
    ,c4
    ,c5
    ,c6
    ,c7
    ,c8
    ,sum(c9) over (partition by c4,c5,c6) 
from 
    table 1 
group by 
    c3
    ,c4
    ,c5
    ,c6
    ,c7
    ,c8;

c9仅对c4,c5,c6进行求和,但c1和c2必须对其他列求和,如上图所示

是否可能。但是我得到的不是一个表达式的组。请帮助我。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你想要与窗口函数聚合:

select sum(c1), sum(c2), c3, c4, c5, c6, c7, c8,
       sum(sum(c9)) over (partition by c4, c5, c6)
from table1
group by c3, c4, c5, c6, c7, c8;

答案 1 :(得分:0)

尝试按功能使用ORDER ..

SELECT column_name(s) FROM table_name 条件 GROUP BY column_name(s) ORDER BY column_name(s);