首页 > 解决方案 > 如何从 bigquery 中的结构中删除行

问题描述

你能帮我解决我的问题吗,我是 Bigquery 的新手。

我有一个包含多个“记录”类型字段的表。我需要从其中一条记录中删除一行。考虑以下示例:

id         date     subid.id    subid.flag
1234    1/4/2020      1234-1        1
                      1234-2        1
                      1234-3        1
                      1234-4       -1
5678    1/5/2020      5678-1        1
                      5678-2        1

我上面的要求是从带有标志-1的结构子ID中删除行。做这个的最好方式是什么 ?请帮忙。

样本数据

标签: sqlgoogle-bigqueryunnest

解决方案


以下是 BigQuery 标准 SQL

#standardSQL
SELECT * EXCEPT(subid),
  ARRAY(
    SELECT AS VALUE subid 
    FROM t.subid  WITH OFFSET
    WHERE flag != -1 
    ORDER BY OFFSET 
  ) AS subid
FROM `project.dataset.table` t

推荐阅读