1

7 列と 850 万行のテーブルがあります。「大きな結果を許可する」にチェックを入れて宛先テーブルを選択しようとしています。リソース超過エラーのため、より大きなクエリを複数のステップに分解する必要があったことに注意してください。

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

これにより、「リソースを超えました」というエラーが返されます。

4

1 に答える 1

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 をより大きな数に置き換えます)

于 2013-08-01T20:41:52.167 に答える