从包含部门,人员和网址的表格中。想为部门和个人的每个组合选择样本网址。
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 :(得分:2)
试试这个:
#standardSQL
select dept, person, ANY_VALUE(url)
from cs.dept_person_url
group by dept, person
这是因为您需要任何URL,并要求OVER(ORDER BY)强制对分区中的所有URL进行排序 - 这对于为每个URL获取样本来说太过分了。
答案 1 :(得分:2)
是否有原因
SELECT dept, person, FIRST(url)
FROM cs.dept_person_url
GROUP BY dept, person
不提供你想要的东西?警告 - 我习惯使用Google Big Query的legacy-sql而不是standard-sql