gpt4 book ai didi

sql - 选择每个组的最后一条记录作为物化 View bq

转载 作者:行者123 更新时间:2023-12-05 03:49:08 25 4
gpt4 key购买 nike

是否可以选择每个组中版本最高的记录并将其作为物化 View 存储在bigquery中?

源表

version name value
1 a 100
1 b 200
1 c 300
2 c 400

我只想获取每组的最后一条记录(按版本分组),所以输出应该是这样的:

version name value
1 a 100
1 b 200
2 c 400

尝试使用 https://stackoverflow.com/a/1313293/5839247 的回答,得到一个错误:物化 View 不支持解析函数或 WITH OFFSET。尝试使用此答案中的方法:https://stackoverflow.com/a/7745635/5839247,得到 Unsupported operator in materialized view: Join.

文档:https://cloud.google.com/bigquery/docs/materialized-views#supported_mvs

最佳答案

目前,BigQuery 的实体化 View 不支持 OFFSET。因此,您必须创建另一个 View 才能使用 OFFSET

1。使用 ARRAY_AGG

创建物化 View
CREATE MATERIALIZED VIEW dataset.mv_name AS
SELECT
name,
ARRAY_AGG(version ORDER BY version DESC) as versions,
ARRAY_AGG(value ORDER BY version DESC) as values
FROM
base_table
GROUP BY
name

2。然后,使用 OFFSET

创建另一个 View
CREATE VIEW dataset.v_name AS
SELECT
name,
versions[OFFSET(0)] as last_version,
values[OFFSET(0)] as last_value
FROM
dataset.mv_name

这里是 official document .

关于sql - 选择每个组的最后一条记录作为物化 View bq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64100590/

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