忽略Cloud Spaner聚合函数中的空值

时间:2018-11-28 17:24:50

标签: google-cloud-platform google-cloud-spanner

试图使用函数ARRAY_AGG并使其忽略空值,但文档未提供任何有关此信息。使用“ IGNORE NULLS”进行了尝试,该扳手可以识别但不会认为有效。

示例:

SELECT ARRAY_AGG(x IGNORE NULLS) FROM UNNEST([1,NULL,2,3]) x

抛出:IGNORE NULLS and RESPECT NULLS in aggregate functions are not supported

2 个答案:

答案 0 :(得分:2)

您仍然可以在汇总之前明确滤除null:

  select array_agg(a) from unnest([1,2,3,cast(null as int64)])                                                      
  a where a is not null;

将产生[1,2,3]作为结果。

答案 1 :(得分:1)

如果您错过了,Spanner 现在支持 doc 中所述的 IGNORE NULLS 语句。

ARRAY_AGG([DISTINCT] expression [{IGNORE|RESPECT} NULLS] [HAVING {MAX | MIN} expression2])