在使用array_agg创建数组之前过滤表达式

时间:2018-10-16 23:56:30

标签: google-bigquery

有什么方法可以过滤

内容中的数据
  

array_agg

一步,而无需编写CTE来首先过滤内容?

https://cloud.google.com/bigquery/docs/reference/standard-sql/arrays

1 个答案:

答案 0 :(得分:3)

使用以下构造:

ARRAY_AGG(IF(condition, NULL, column_value) IGNORE NULLS)

下面是说明该方法的简化示例

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1 id, 1 val UNION ALL
  SELECT 1, 2 UNION ALL
  SELECT 1, 3 UNION ALL
  SELECT 1, 4 UNION ALL
  SELECT 1, 5 UNION ALL
  SELECT 1, 6 
)
SELECT id, ARRAY_AGG(IF(val < 4, NULL, val) IGNORE NULLS)
FROM `project.dataset.table`
GROUP BY id