Select 计算大于 0 的值 SQL 服务器

Select Count Where Values greater than 0 SQL Server

我正在尝试弄清楚如何 return select 查询显示列中大于 0 的所有值的计数。然后在下一列中显示计数所有 = 0 的值。

示例:

ID  ColumnA
1   1    
2   2
3   1
4   2
5   0
6   0
7   1

return select 查询的结果会是:

NumberOfGreaterThan0    NumberThatEqual0

5                       2

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

SELECT COUNT(CASE WHEN ColumnA > 0 THEN 1 END) AS NumberOfGreaterThan0 
      ,COUNT(CASE WHEN ColumnA = 0 THEN 1 END) AS NumberThatEqual0
FROM YourTable

之所以有效,是因为聚合函数忽略了 NULL 个值。

您可以在 case 表达式上使用几个 count 函数:

SELECT COUNT(CASE WHEN columa > 0 THEN 1 ELSE NULL END) AS NumberOfGreaterThan0,
       COUNT(CASE columa WHEN 0 THEN 1 ELSE NULL END) AS NumberThatEqual0
FROM   my_table