我需要在BigQuery中为大(约十亿行)数据集添加行号。当我尝试:
SELECT
*
ROW_NUMBER() OVER (ORDER BY d_arf DESC) plarf
FROM [trigram.trigrams8]
我得到“在查询执行期间超出资源。”,因为分析/窗口函数需要适合一个节点。
如何在BigQuery中为大型数据集添加行号?
答案 0 :(得分:5)
你没有给我一个有效的查询,所以我必须创建自己的查询,所以你需要将它翻译成你自己的问题空间。此外,我不确定您为什么要在如此庞大的数据集中为每一行提供行号,但接受挑战:
SELECT a.enc, plarf, plarf+COALESCE(INTEGER(sumc), (0)) row_num
FROM (
SELECT STRING(year)+STRING(month)+STRING(mother_age)+state enc,
ROW_NUMBER() OVER (PARTITION BY year ORDER BY enc) plarf,
year
FROM [publicdata:samples.natality] ) a
LEFT JOIN (
SELECT COUNT(*) c, year+1 year, SUM(c) OVER(ORDER BY year) sumc
FROM [publicdata:samples.natality]
GROUP BY year
) b
ON a.year=b.year