日期:2014-05-17  浏览次数:20902 次

对某一列进行求和汇总应该怎样写?

select a,acnt,b,bcnt,sum(acnt),sum(bcnt) from test
这个 sum(acnt),sum(bcnt) 如何求?
不用group by 可以做到吗?

------解决方案--------------------
不分组求和,不能啊
------解决方案--------------------
可以用子查询
------解决方案--------------------
sum(acnt),sum(bcnt) 这个是所有的值汇总还是分组汇总?
------解决方案--------------------
可以使用开窗函数
sum(...) over(partition by...)
------解决方案--------------------
探讨
sum(acnt),sum(bcnt) 这个是所有的值汇总还是分组汇总?
所有值汇总

------解决方案--------------------
如果是要在最后一行添加汇总 那可以在上面查询了 union all 汇总就可以咯
------解决方案--------------------
一个union all就可以解决啊
像这样
SQL code
SELECT * FROM emp;

SELECT empno,sal FROM emp
UNION ALL
SELECT NULL,SUM(sal) FROM emp;

------解决方案--------------------
探讨
引用:

如果是要在最后一行添加汇总 那可以在上面查询了 union all 汇总就可以咯

谢谢,这个我知道的,我看看还有没有更加简单的方法,因为我这个 表 也是很多查询出来的。

------解决方案--------------------
rollup 可以用这个
------解决方案--------------------
可以看看用group by rollup来统计汇总
------解决方案--------------------
使用临时表!分组的结果放表1,最后再对表1做一次汇总,或者直接再加一层!
------解决方案--------------------
select a,acnt,b,bcnt,sum(acnt),sum(bcnt) from test

group by grouping sets((a,acnt,b,bcnt),())