首页 > 解决方案 > 在 SQL Server 中使用 GroupBy() 而不是分组记录计数时如何获取表中所有行的计数

问题描述

当我在我的选择语句中使用 Group by 和 Count() 时,它正在对记录进行分组并返回每个组计数。

我想用 Group By 获得所有表格记录的总数。我怎么得到那个。

我需要类似于下面的结果

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

标签: sqlsql-servertsqlgroup-by

解决方案


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

那看起来像:

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

推荐阅读