使用Group By语句SQL Server 2008获取行计数

时间:2014-05-13 11:39:02

标签: sql sql-server sql-server-2008

我正在使用SQL Server 2008和navicat。我需要使用SQL在表中获取Row Count。问题是我正在使用Group By语句,结果是:

enter image description here

我需要rcount值的Sum,就像没有Group By语句的RowCount一样。

提前谢谢。

1 个答案:

答案 0 :(得分:3)

假设您希望将此作为附加列,可以使用窗口函数执行此操作:

select count(*) as rcount, goalarea,
       sum(count(*)) over () as TotalCount
from table t
group by goalarea;

如果您想将它作为一个单独的行,我会使用with rollup

select count(*) as rcount, goalarea
from table t
group by goalarea with rollup;

(您也可以使用grouping sets,但我发现with rollup更容易解决这个简单的问题。)