在SQL Server中使用GroupBy()而不是分组记录计数时,如何获取表中所有行的计数

在SQL Server中使用GroupBy()而不是分组记录计数时,如何获取表中所有行的计数,sql,sql-server,tsql,group-by,Sql,Sql Server,Tsql,Group By,在select语句中使用Group by和Count()时,它将记录分组并返回每个组计数 我想通过GROUPBY获得表中所有记录的总计。我怎么知道呢 我需要类似于下面的结果 GroupCount Dept GrandTotalOfAllRows 2 CEC 6 1 ECE 6 3 CSE 6 您通常会使用窗口函数:逻辑是对整个数据集的聚合计数执行窗口sum() 这看起来像: select c

在select语句中使用Group by和Count()时,它将记录分组并返回每个组计数

我想通过GROUPBY获得表中所有记录的总计。我怎么知道呢

我需要类似于下面的结果

GroupCount  Dept  GrandTotalOfAllRows
 2          CEC      6
 1          ECE      6
 3          CSE      6

您通常会使用窗口函数:逻辑是对整个数据集的聚合计数执行窗口
sum()

这看起来像:

select 
    count(*) GroupCount,
    dept, 
    sum(count(*)) over () GrandTotalOfAllRows
from mytable
group by dept

您可以在查询中按添加分区

....      
,SUM(GroupCount) OVER () AS GrandTotalOfAllRows
from Table 
GROUP by dept
...

您可以使用子查询

SELECT
  dept
  ,COUNT(*) AS GroupCount
  ,(SELECT COUNT(*) FROM table) AS TotalCount
FROM table
GROUP BY
  dept