首页 > 解决方案 > 如何在 oracle sql 中获取 group by 的总和?

问题描述

SELECT SUBSTR(SSN,8,1), COUNT(*)
FROM HR
GROUP BY SUBSTR(SSN,8,1)

的结果

SUBSTR(SSN,8,1), COUNT(*)
1,32
2,30

我怎样才能得到分组的总和,32+30?

标签: sqloraclegroup-by

解决方案


一种选择是使用ROLLUP()CUBE()扩展,例如

SELECT SUBSTR(SSN,8,1), COUNT(*)
  FROM HR
 GROUP BY ROLLUP( SUBSTR(SSN,8,1) ) 

或者

SELECT SUBSTR(SSN,8,1), COUNT(*)
  FROM HR
 GROUP BY CUBE( SUBSTR(SSN,8,1) ) 

推荐阅读