我有一个输入表,如下所示,并试图获得汇总计数:
桶/桶是固定的。这个例子有桶/桶-1到90,97,98。这些桶/桶需要计数。

每当输入表中的数据可用时,我就能够获得所有回收箱的计数。但是,当数据不可用时,它不会显示为零计数。
这里的任何帮助都是非常感谢的。提前谢谢。
示例:"97“值不出现在year=2015中。因此,它应该在输出表中有零计数。
我试过的代码:
从mrmg_atrib_monit_psi_db.ada_data_types_negative中选择' ada‘作为属性,年份,' 98’作为bin,计数为bin_count,其中ada=98
按年组合都选择' ada‘作为属性,' 97’作为bin,计数( bin_count )为bin_count,其中ada=97
按年组合都选择' ada‘作为属性,'1到90’作为bin,计算( mrmg_atrib_monit_psi_db.ada_data_types_negative )为bin_count,其中ada按年从1组到90组。
发布于 2019-10-04 17:33:51
从mrmg_atrib_monit_psi_db.ada_data_types_negative中选择' ada‘作为属性,年份,' 98’作为bin,计数为bin_count,其中ada=98
按年组合都选择' ada‘作为属性,' 97’作为bin,和(在ada = 97的情况下,在1其他0结束时)从mrmg_atrib_monit_psi_db.ada_data_types_negative选择bin_count,其中ada=97
按年组合都选择' ada‘作为属性,'1到90’作为bin,计算( mrmg_atrib_monit_psi_db.ada_data_types_negative )为bin_count,其中ada按年从1组到90组。
解决方案:将select语句末尾的where函数替换为Sum(case)也有助于获得零计数
发布于 2019-10-04 16:45:48
所谓“预定义”,我想您的意思是您有一个bin定义表。然后可以使用cross join生成行,使用left join生成数据:
select y.year, b.bin, count(i.year) as cnt
from (select distinct year from input) y cross join
bins b left join
input i
on i.year = y.year and i.ada between b.lo and b.hi
group by y.year, b.bin;https://stackoverflow.com/questions/58240288
复制相似问题