Teradata SQL - 来自同一列的两个计数

时间:2015-11-10 19:29:44

标签: sql count teradata

我是SQL和Teradata的新手。我试着寻找答案但到目前为止都没有成功。

我创建了一个易失性表,其中包含一个值<100(可包含底片)的列。我想获得总计数,所有“0”值的计数,所有值的计数,其中0

我知道我可以为每种类型单独做一个声明,但据我所知,我想学习“正确”的方法。我尝试使用此链接中的类似解决方案 - Different value counts on same column - 但由于我需要使用><和类似的运算符,因此似乎无效。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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