选择Count Where大于0 SQL Server的值

Rev*_*kez 5 sql sql-server select count

我试图弄清楚如何返回一个选择查询,显示列中所有值的计数大于0.然后在下一列中显示所有值的计数= 0.

例:

ID  ColumnA
1   1    
2   2
3   1
4   2
5   0
6   0
7   1
Run Code Online (Sandbox Code Playgroud)

将返回选择查询的结果:

NumberOfGreaterThan0    NumberThatEqual0

5                       2
Run Code Online (Sandbox Code Playgroud)

Har*_* CO 16

您可以通过CASE表达式使用条件聚合:

SELECT COUNT(CASE WHEN ColumnA > 0 THEN 1 END) AS NumberOfGreaterThan0 
      ,COUNT(CASE WHEN ColumnA = 0 THEN 1 END) AS NumberThatEqual0
FROM YourTable
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为聚合函数忽略NULL值.