聚合器中缺少Redshift SQL空值吗?

时间:2018-07-12 16:38:53

标签: sql amazon-redshift

我的表格具有以下列和行

Country           campaign events                       events
DE      RTEST [FB] ACQ Buyer - NDPA - Marketplace (REV - Retention - $15 - July) v1 10000

HK                another campaign                      20000
_null_            no campaign                           30000

现在,如果我运行以下查询

  

从表WHERE mkt_campaign中选择COUNT(*)!='RTEST   [FB] ACQ买方-NDPA-市场(REV-保留-$ 15-7月)v1'

我应该得到50000作为输出,但是只有20000。

问题 1.我的过滤条件是否正确,或者那些花括号是任何元字符或转义序列等? 2.为什么在计数聚合中不考虑空行?

预先感谢

1 个答案:

答案 0 :(得分:2)

这些NULL处理行为由ANSI SQL标准定义。

您的“不等于” !=过滤器隐式排除了空值,因为它们无法比较。您需要添加OR mkt_campaign IS NULL才能包含它们。

还要注意,聚合函数(排除 COUNT(*))会删除NULL值http://www.sqlservercentral.com/articles/Advanced+Querying/gotchasqlaggregatefunctionsandnull/1947/