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
我正在尝试弄清楚如何 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