关于Snowflake count_if()函数实际返回值与文档不符的技术问询
Snowflake count_if() 文档描述与实际行为不符的说明
这确实属于官方文档的描述错误,Snowflake的count_if()函数在没有满足条件的记录时始终返回0,而非文档中所说的NULL。
实际测试验证
执行如下SQL语句:
select count_if(1 = 1), count_if(1 != 1), count_if(null)
实际执行结果显示:
count_if(1 = 1)返回当前查询范围内的总行数(条件恒成立)count_if(1 != 1)和count_if(null)均返回0:前者条件恒不成立,后者会将null判定为不满足条件,两种场景都没有符合要求的记录,但函数返回值为0。
补充说明
Snowflake中所有count系列聚合函数(包括基础的count())的设计逻辑都是:即使没有匹配的记录,也会返回0。只有sum()、avg()这类依赖数值计算的聚合函数,在无匹配记录时才会返回NULL,这是SQL聚合函数的常规行为。
内容的提问来源于stack exchange,提问作者archjkeee
相关产品推荐
相关产品推荐

