PostgreSQL:如何包含0的计数

时间:2018-05-10 18:03:58

标签: sql postgresql

我正在尝试计算单个表中每个代理ID显示的arc_name实例的数量。有些值应为0,我需要看到它。我尝试使用内部和外部连接,但我无法看到用我尝试的任何东西获得正确的输出。

查询我正在运行:

select arc_agt_id, count(arc_name) 
from arcsight.events 
where arc_deviceVendor!='ArcSight'  
group by arc_agt_id

结果我得到了

arc_agt_id                | count(arc_name)
--------------------------+----------------------------
30D9Sw1MBABDfYr21UVlCKw== |                        2405
30tpaw1MBABDgIt6vGXvdOw== |                          24
33dnWvVMBABCtK+QmmkJFmw== |                          34
3KO9Aw1MBABDeW7QDfqHLrQ== |                         150
3PqZkM1MBABCAZQUeEsoMyQ== |                          17
3WzBTyFMBABDkGgmV5hkYCg== |                      139401
3go+3yFMBABC6w9nthwL-xA== |                        2626
3jBRoplMBABCLS9DuFdIeEw== |                      214456
3t4uJ1GIBABDVLXw-2ElS8A== |                         156

我想要的结果:

arc_agt_id                | count(arc_name)
--------------------------+----------------------------
30D9Sw1MBABDfYr21UVlCKw== |                        2405
30tpaw1MBABDgIt6vGXvdOw== |                          24
33dnWvVMBABCtK+QmmkJFmw== |                          34
3KO9Aw1MBABDeW7QDfqHLrQ== |                         150
3PqZkM1MBABCAZQUeEsoMyQ== |                          17
3WzBTyFMBABDkGgmV5hkYCg== |                      139401
3go+3yFMBABC6w9nthwL-xA== |                        2626
CLS9DuFdIeEw3jBRoplMBAB== |                          0
3UULSLSLS88ujiu8u8u8u88== |                          0
3jBRoplMBABCLS9DuFdIeEw== |                      214456
3t4uJ1GIBABDVLXw-2ElS8A== |                         156

1 个答案:

答案 0 :(得分:0)

我认为你只想要条件聚合:

select arc_agt_id,
       sum(case when arc_deviceVendor <> 'ArcSight' then 1 else 0 end)
from arcsight.events   
group by arc_agt_id