【问题标题】:distinct rows from bigquery table with array field具有数组字段的 bigquery 表中的不同行
【发布时间】:2019-10-30 23:00:06
【问题描述】:

我有一个包含数组类型字段 candidate 的 bigquery 表。如何从该表中查询不同的行?

在这种情况下,我的查询应该只返回第一行。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    我认为下面是最简单的方法,适用于任何类型和长度等。

    #standardSQL
    SELECT ANY_VALUE(candidate) candidate
    FROM `project.dataset.table`
    GROUP BY FORMAT('%T', candidate) 
    

    以前我曾经为此使用 TO_JSON_STRING() - 但最近意识到 FORMAT() 最适合像这样的大多数情况

    【讨论】:

    【解决方案2】:

    类似:

    select split(combed, ".") as candidate from (
       select distinct array_to_string(candidate, ".") as combed 
       from `dataset.table`
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多