【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 2013-10-17
      • 2011-04-16
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多