分组的随机样本MS SQL Server

亚历克斯

可以说我想使用id以下形式随机抽样数据库

id 
A    
A
A
B
C
C
D
D
E
F

而不是进行完全随机的抽样,我将如何抽样50%的不同组。不同之处在于,随机样本将给我所有记录的一半,而分组样本将给我所有不同记录的一半ids

这是必要的,因为我不想对进行部分采样id如果A选择,则所有3 As都应包括在这种分组的随机样本中。

比方说,例如该组集合{ ABC}是随机选择的。该查询将产生以下内容

id
A
A
A
B
C
C
马丁·史密斯

您可以使用

SELECT *
FROM   YourTable
WHERE  [id] IN (SELECT TOP 50 PERCENT [id]
                FROM   YourTable
                GROUP  BY [id]
                ORDER  BY CRYPT_GEN_RANDOM(4)) 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章