选择 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算是对检索条件的补充吗?