(此文档仅供参考)
问题描述:
以透视分析为例,在使用clickhouse的mpp进行查询时,参数设置过滤掉不等于某个类型也会把NULL给过滤掉,该如何解决呢?以透视分析为例,在使用clickhouse的mpp进行查询时,直接拖拽字段作为参数,参数设置过滤掉不等于某个类型也会把NULL给过滤掉,该如何解决呢?
问题原理:
从执行SQL可以看出并没有问题,无多余拼接过滤NULL数据,结合网上资料可以发现,大部分数据库的逻辑,对于null具有特殊的处理方式,因为 NULL 表示未知值,而未知值与任何已知值的比较结果都是 NULL(即不确定)。当使用<>或者 !=(不等于)操作符时,NULL 值会被排除在外
参考网上资料:https://www.cnblogs.com/goloving/p/15578092.html
解决方案:
在SQL层面可以提前进行数据处理,使用 ifnull() 方法,将 null 转为空字符串;或者这个字段做出判断 加上OR a is null。
以上述透视分析的场景为例,可以直接再拖拽一个参数,设置为null以上述透视分析的场景为例,可以直接再拖拽该字段作为参数,设置条件【为null】,聚合方式设置为【or】
对应执行SQL: