2017-07-12 5 views
0

部門、人、およびURLを含むテーブルから。部門と個人の組み合わせごとにサンプルURLを選択したいFIRST_VALUEウィンドウ機能 - クエリ実行中にリソースが超過しました

select dept,person,FIRST_VALUE(url) OVER (PARTITION BY dept,person ORDER BY url) from cs.dept_person_url 

上記のクエリは、で失敗します。エラー:クエリの実行中にリソースが超過しました。

READ 
$1, $2, $3 
FROM __SHUFFLE0 
SORT 
$1 ASC, $2 ASC, $3 ASC 
ANALYTIC FN 
FIRST_VALUE($13) OVER (PARTITION BY $11, $12 ORDER BY $13 ASC RANGE BETWEEN UNBOUNDED PRECEDING AND [...] 
WRITE 
$14, $15, $10 
TO __SHUFFLE1 

それが失敗したステージがあります。

Input Rows: 54,344,863 
Output Rows: 48,536,071 

働く可能性のある代替的なアプローチを提案してください。

+0

これはウィンドウ関数の一部としてorder by節でなければならないが、すべてのグループのサンプルURLを取得するための他のオプションは表示されない。 – axrd

答えて

2

この試してみてください:あなたは任意のURLをしたい、とOVER(ORDER BY)を求めることは、パーティション内のすべてのURLを超えるソートを強制するので

#standardSQL 
select dept, person, ANY_VALUE(url) 
from cs.dept_person_url 
group by dept, person 

これを - それはただのサンプルを得るためにあまりにも多くの仕事ですそれぞれについて。

2

理由がある

SELECT dept, person, FIRST(url) 
FROM cs.dept_person_url 
GROUP BY dept, person 

あなたが探しているものを提供していますか?警告 - 私はGoogle Big Queryの標準SQLではなく従来のSQLを使用することに慣れていた

関連する問題