【问题标题】:Select Count Where Values greater than 0 SQL Server选择 Count Where Values 大于 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
【问题讨论】:
标签:
sql
sql-server
select
count
【解决方案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