【问题标题】:How to count two fields by using Select statement in SQL Server 2005?如何在 SQL Server 2005 中使用 Select 语句计算两个字段?
【发布时间】:2011-02-18 15:54:09
【问题描述】:

表中的记录总数为 10。

Select count(ID) from table1 where col1 = 1 (Result is 8)
Select count(ID) from table1 where col1 = 0 (Result is 2)

所以它是同一张表,但计数基于不同的条件。我将如何使用一个 select 语句获得两个结果(计数)?

这里的性能也是一个大问题。

PS:我正在使用存储过程...

编辑: 我想清楚上面的查询只是大 SP 逻辑的一部分(至少对我来说)。由于我得到了以下这些答案,它提供了另一个想法以不同的方式实现它。我上面的问题现在有点改变了.....请在这里帮忙?它具有相同的 col(布尔类型),具有 true 或 false 状态。

【问题讨论】:

    标签: sql sql-server-2005 tsql stored-procedures select


    【解决方案1】:

    用例:

    SELECT
        SUM(CASE col1 WHEN 1 THEN 1 ELSE 0 END) AS Count1,
        SUM(CASE col1 WHEN 0 THEN 1 ELSE 0 END) AS Count0
    FROM table1
    

    【讨论】:

    • 同意@KM。我该怎么做?
    • 对于这种 CASE 方法,您必须使用 SUM。
    【解决方案2】:

    您应该使用子选择或 UNIONS,我没有看到其他方式...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-01
      • 2023-03-22
      • 2011-01-03
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      相关资源
      最近更新 更多