我正在尝试找出在Big Query中为每个组中的每个组随机抽取100条记录的最佳方法。
例如,我有一个表,其中列A是唯一的recordID,列B是记录所属的groupID。对于每个不同的groupID,我想采用100个记录ID的随机样本。有没有简单的方法来完成这个?
答案 0 :(得分:3)
答案 1 :(得分:0)
有类似的需求,即群集抽样,超过400M和更多列,但在使用Exceeded resources...
时遇到ROW_NUMBER()
错误。
如果您不需要RAND()
,因为您的数据无论如何都是无序的,这表现得非常好(在我的情况下<30秒):
SELECT ARRAY_AGG(x LIMIT 100)
FROM yourtable x
GROUP BY groupId
你可以:
UNNEST()
进行装饰ORDER BY groupId
以更快地查找/确认模式