在SQL Server中按项目和总计数进行选择

时间:2014-04-02 12:47:03

标签: sql sql-server select count totals

我正在使用以下程序为每个项目添加一个到目前为止工作正常的计数。

如果我还希望另外获得总计数,以便计算该选择中的所有项目,我该如何更改?

我的程序:

SELECT      RANK() OVER(ORDER BY COUNT(*) desc, policy) [Rank],
            policy, 
            COUNT(*) AS groupCount,
            'currentMonth' AS groupName
FROM        Log_PE 
WHERE       CONVERT(DATE, dateEsc, 120) >= CONVERT(DATE, CONVERT(VARCHAR(6), GETDATE(), 112) + '01', 112)
GROUP BY    policy
ORDER BY    groupCount desc, policy

3 个答案:

答案 0 :(得分:1)

已在另一篇文章中回答: SUM of grouped COUNT in SQL Query

select name, COUNT(name) as count from Table
group by name
    Union all
select 'SUM', COUNT(name)
from Table

答案 1 :(得分:0)

查看 GROUP BY Modifiers

可能有用的部分是 WITH ROLLUP

答案 2 :(得分:0)

您可以使用With Rollup(如蓝色所示)以及分组集, 分组集为您提供更大的灵活性 -

SELECT      RANK() OVER(ORDER BY COUNT(*) desc, policy) [Rank],
            policy, 
            COUNT(*) AS groupCount,
            'currentMonth' AS groupName
FROM        Log_PE 
WHERE       CONVERT(DATE, dateEsc, 120) >= CONVERT(DATE, CONVERT(VARCHAR(6), GETDATE(), 112) + '01', 112)
GROUP BY Grouping Sets (policy,())
ORDER BY    groupCount desc, policy