фильтрация выражения перед созданием массива с помощью array_agg - PullRequest
0 голосов
/ 17 октября 2018

Есть ли способ отфильтровать данные внутри содержимого

array_agg

за один шаг, без написания CTE для предварительной фильтрации содержимого?

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

1 Ответ

0 голосов
/ 17 октября 2018

Используйте приведенную ниже конструкцию:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...