选择 Count Where Values 大于 0 SQL Server

Posted

技术标签:

【中文标题】选择 Count Where Values 大于 0 SQL Server【英文标题】:Select Count Where Values greater than 0 SQL Server 【发布时间】:2016-01-16 05:27:10 【问题描述】:

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

例子:

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

将返回以下选择查询的结果:

NumberOfGreaterThan0    NumberThatEqual0

5                       2

【问题讨论】:

【参考方案1】:

您可以通过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 值。

【讨论】:

太棒了,正是我想要的。非常感谢:)【参考方案2】:

您可以在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

【讨论】:

以上是关于选择 Count Where Values 大于 0 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 berkeleydb je“从 xz WHERE xz.a > value 中选择 COUNT(*)”

使用 WHERE 和 COUNT 在 sql 查询中返回错误值

SQL中where和group by可以连用吗?having算是对检索条件的补充吗?

GROUP BY,WHERE,HAVING之间的区别和用法

联合索引(x+y),那么sql语句的where条件上大于小于范围的哪种写法效率高?

5.WHERE 子句