我正在使用以下程序为每个项目添加一个到目前为止工作正常的计数。
如果我还希望另外获得总计数,以便计算该选择中的所有项目,我该如何更改?
我的程序:
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
答案 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