我是SQL和Teradata的新手。我试着寻找答案但到目前为止都没有成功。
我创建了一个易失性表,其中包含一个值<100(可包含底片)的列。我想获得总计数,所有“0”值的计数,所有值的计数,其中0
我知道我可以为每种类型单独做一个声明,但据我所知,我想学习“正确”的方法。我尝试使用此链接中的类似解决方案 - Different value counts on same column - 但由于我需要使用>
,<
和类似的运算符,因此似乎无效。
类似于该线程中的表的布局就足够了。
感谢您的帮助。
答案 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