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

Ignore null values in cloud spanner's aggregate functions

尝试使用函数 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

您仍然可以在聚合之前显式过滤掉空值:

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

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

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

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