BigQuery rank()函数 - 超出资源

时间:2013-08-01 14:39:03

标签: sql google-bigquery

我有一个有7列和~8.5密耳行的表。我尝试使用"允许大结果"选择目标表。检查。注意由于资源超出错误,我已经不得不将更大的查询分解为多个步骤。

SELECT 
    col1,
    col2,
    col3,
    col4,
    RANK() OVER (PARTITION BY col1 ORDER BY col4 DESC) rank
FROM
[dataset.table]

这会返回超出的资源"错误。

1 个答案:

答案 0 :(得分:0)

由于窗口函数的当前实现,当尝试在大数据集上运行窗口函数时,这些错误是预期的(在这种情况下,需要大结果标记)。

虽然存在这些限制,但我建议您分多步执行查询,如:

SELECT col1, col2, col3, col4, RANK() OVER (PARTITION BY col1 ORDER BY col4 DESC) rank FROM [dataset.table]
WHERE ABS(HASH(col1)) % 4 = 0

(将0替换为1,2和3以完成整个过程 - 如果资源仍然超过,则将4替换为更大的数字)