【问题标题】:T-SQL Writing a Count Statement to find two valuesT-SQL 编写计数语句以查找两个值
【发布时间】:2014-04-25 11:01:41
【问题描述】:

我试图让两列出现。我已经将许多表合并在一起。然后这些表现在出现在一个表中。

在这张表之后,我知道需要对一列进行汇总计数。

此列包含两个值。所以我需要计算列中的文本值 1 和文本值 2。

select count (column_name) as column_name
FROM table name
where column_name = 'value1' 

但我不确定如何将值 2 添加到此语句中?任何帮助都很棒。非常感激。

【问题讨论】:

  • 你能展示一下表格和想要的结果吗?您是否尝试将其选择为一列或不同的列(基于值)?

标签: sql tsql count


【解决方案1】:

你可以使用pivot,但我认为在这种情况下条件聚合更容易:

select sum(case when column_name = 'value1' then 1 else 0 end) as value1,
       sum(case when column_name = 'value2' then 1 else 0 end) as value2       
from table name;

如果您可以接受两行而不是两列的值,请使用group by

select column_name, count(*)
from table name
group by column_name;

【讨论】:

  • select column_name, count (*) FROM table name group by column_name where column_name in ( 'value1' ,'value2') 我认为这有帮助。我得到的唯一问题是,我刚刚在 10 个表上使用了联合。现在这个表存在,我怎么能对那个表使用它,因为 FROM 语句不会对它起作用,因为该表不存在。感谢您的帮助
【解决方案2】:

我不确定你想要什么,但无论我理解什么,我认为这会对你有所帮助 -

select 
    Sum ( case when column_name = 'value1'  then 1 else 0 end) as CountValue1,
    Sum ( case when column_name = 'value2'  then 1 else 0 end) as CountValue2
 FROM table name

【讨论】:

    【解决方案3】:
    select column_name, count (*) 
    FROM 
    ( 
         select column_name from table1
         union all
         select column_name from table2
    ) src
    group by column_name
    where column_name in ( 'value1' ,'value2')
    

    【讨论】:

    • 这就是我要找的。唯一的问题是 from 语句,如果我创建的表是由联合连接的,那么我如何选择它不是物理表。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2011-10-27
    相关资源
    最近更新 更多