gpt4 book ai didi

google-bigquery - 谷歌 bigquery 中的 ROWNUM 或 ROWID

转载 作者:行者123 更新时间:2023-12-01 12:11:48 25 4
gpt4 key购买 nike

将一些东西移植到 bigquery,并遇到了一个问题。
我们有一堆没有唯一键值的数据。不幸的是,某些报告逻辑要求每一行都有一个唯一的值。

所以在像 Oracle 这样的系统中,我只会使用 ROWNUMROWID伪列。

在没有那些伪列的 vertica 中,我会使用 ROW_NUMBER() OVER() .但是在因错误而失败的 bigquery 中:

'dataset:bqjob_r79e7b4147102bdd7_0000016482b3957c_1': Resources exceeded during query execution: The query could not be executed in the allotted memory.
OVER() operator used too much memory..

该值不必是持久的,只是查询结果中的唯一值。

如果可能,希望避免提取过程重新加载。

那么有没有什么办法可以为bigquery SQL中的查询结果行分配一个unqiue值呢?

编辑:对不起,应该澄清。使用标准 sql,而不是遗留

最佳答案

对于 ROW_NUMBER() OVER()要扩展,您需要使用 PARTITION .

https://stackoverflow.com/a/16534965/132438

#standardSQL
SELECT *
, FORMAT('%i-%i-%i', year, month, ROW_NUMBER() OVER(PARTITION BY year, month)) id
FROM `publicdata.samples.natality`

enter image description here

关于google-bigquery - 谷歌 bigquery 中的 ROWNUM 或 ROWID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51257968/

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