具有数组字段的 bigquery 表中的不同行
Posted
技术标签:
【中文标题】具有数组字段的 bigquery 表中的不同行【英文标题】:distinct rows from bigquery table with array field 【发布时间】:2019-10-30 23:00:06 【问题描述】:我有一个包含数组类型字段 candidate 的 bigquery 表。如何从该表中查询不同的行?
在这种情况下,我的查询应该只返回第一行。
【问题讨论】:
【参考方案1】:我认为下面是最简单的方法,适用于任何类型和长度等。
#standardSQL
SELECT ANY_VALUE(candidate) candidate
FROM `project.dataset.table`
GROUP BY FORMAT('%T', candidate)
以前我曾经为此使用 TO_JSON_STRING() - 但最近意识到 FORMAT() 最适合像这样的大多数情况
【讨论】:
aaah.. %T 行为:cloud.google.com/bigquery/docs/reference/standard-sql/… 没错! :o) 视情况而定,使用%T
或 %t
以获得最佳结果 :o)【参考方案2】:
类似:
select split(combed, ".") as candidate from (
select distinct array_to_string(candidate, ".") as combed
from `dataset.table`
)
【讨论】:
以上是关于具有数组字段的 bigquery 表中的不同行的主要内容,如果未能解决你的问题,请参考以下文章
MySQL Select ID 出现在具有多个特定值的列的不同行上