【问题标题】:Teradata SQL - two counts from same columnTeradata SQL - 来自同一列的两个计数
【发布时间】:2016-02-11 19:18:40
【问题描述】:

我是 SQL 和 Teradata 的新手。我试图寻找这个问题的答案,但到目前为止没有成功。

我创建了一个 volatile 表,其中有一列的值小于 100(可以包括负数)。我想得到一个总计数,所有“0”值的计数,所有值为 0 的计数

我知道我可以为每种类型做一个单独的陈述,但就我自己的知识而言,我想学习“正确”的方式。我尝试使用在此链接上找到的类似解决方案 - Different value counts on same column - 但这似乎不起作用,因为我需要使用 >< 和类似的运算符。

与该线程中的表格类似的布局就足够了。

感谢您的帮助。

【问题讨论】:

  • 我看到的都是HERE,我希望它是免费的钱之类的

标签: sql count teradata


【解决方案1】:

count 不能是有条件的。它计算所有记录,或者如果您指定一个列,则该列不是null 的所有记录。使用sum

select count(*) as total,
       sum(case when some_col = 0 then 1 else 0 end) as count_0,
       sum(case when some_col > 0 then 1 else 0 end) as count_above0
from your_table

【讨论】:

  • 当然COUNT 也可以是有条件的:) COUNT(case when some_col = 0 then 1 end)
  • @dnoeth:是的,如果你确定else 部分是null。但是对于初学者来说是不是有点难?如果您不知道,这可能是多么错误:sqlfiddle.com/#!9/bea60a/3
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 2014-09-02
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-02-23
  • 2022-01-03
  • 1970-01-01
相关资源
最近更新 更多