我试图找出在 Big Query 的表中为每个组随机抽取 100 条记录的最佳方法是什么。
例如,我有一个表,其中 A 列是唯一的记录 ID,B 列是该记录所属的组 ID。对于每个不同的 groupID,我想随机抽取 100 个记录 ID。有没有简单的方法来完成这个?
最佳答案
像下面这样的东西应该工作
SELECT recordID, groupID
FROM (
SELECT
recordID, groupID,
RAND() AS rnd, ROW_NUMBER() OVER(PARTITION BY groupID ORDER BY rnd) AS pos
FROM yourTable
)
WHERE pos <= 100
ORDER BY groupID, recordID
如果你想提高随机性,还要检查 RAND() here
关于google-bigquery - 在 Big Query 中从每个组中随机抽取样本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36019727/