gpt4 book ai didi

google-bigquery - Bigquery 中的 ARRAY OF STRUCT 中的 DISTINCT

转载 作者:行者123 更新时间:2023-12-02 04:17:51 25 4
gpt4 key购买 nike

我正在寻找使结构数组具有唯一值的方法。这是示例表。

-------------------------------------

进入此 enter image description here

我只找到类似的问题here ,但我认为它只满足 1 个嵌套重复列。但是,如果表包含 2 个或更多嵌套重复列怎么办?在本例中,为国家列和产品

最佳答案

But what if the tables contains 2 or more nested repeated columns?

以下适用于 BigQuery 标准 SQL

#standardSQL
SELECT * REPLACE(
(SELECT ARRAY_AGG(STRUCT(id, total_visit_count))
FROM (SELECT DISTINCT id, total_visit_count FROM UNNEST(country) c
)) AS country,
(SELECT ARRAY_AGG(STRUCT(name, total_visit_count))
FROM (SELECT DISTINCT name, total_visit_count FROM UNNEST(product) c
)) AS product
)
FROM `project.dataset.table`

如果您有更多列需要重复数据删除 - 您只需对每个此类列重复上述操作

或者,您可以使用 SQL UDF 将重复数据删除逻辑封装在一个位置,如下例所示

#standardSQL
CREATE TEMP FUNCTION dedup(val ANY TYPE) AS ((
SELECT ARRAY_AGG(t)
FROM (SELECT DISTINCT * FROM UNNEST(val) v) t
));
SELECT * REPLACE(
dedup(country) AS country,
dedup(product) AS product
)
FROM `project.dataset.table`

显然,我选择后者:o)

关于google-bigquery - Bigquery 中的 ARRAY OF STRUCT 中的 DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55777372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com