如何在SQL Server中使用SUM而不是GROUP BY?

Qui*_*gan 3 sql sql-server sql-server-2008

我目前有:

SELECT Name, COUNT(*) as Total
FROM DataTable
WHERE Name IN ('A', 'B', 'C')
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)

结果输出:

Name    Total
--------------
 A        2
 B        5
 C        3
Run Code Online (Sandbox Code Playgroud)

相反,我想要这个:

Name    Total
--------------
 A        10
 B        10
 C        10
Run Code Online (Sandbox Code Playgroud)

这里10是总共2 + 5 + 3(名称= A/B/C的记录总数)

我该怎么做呢?

Mar*_*ith 7

要获得所需的结果,您可以SUM() OVER ()在分组上使用COUNT(*).演示

SELECT Name, 
       SUM(COUNT(*)) OVER () as Total
FROM DataTable
WHERE Name IN ('A', 'B', 'C')
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)