SQL结果的随机样本

时间:2014-04-21 03:28:31

标签: mysql sql sample random-sample

我有一个名为names的列的表,它意味着有几个具有相同名称的行。我需要找到一种方法来进行查询,以便为每个名称提供4%随机抽样行。例如,如果表中每个名称有100行,则为该列返回每个名称的4个随机行。这有意义吗?

这就是我的表格:

Id    name   order_id
1     john   10
2     mike   11
3     jay    12
4     john   13
5     jay    14
6     mike   15
*     
*
25000 jay    25010

对于结果我需要一个随机抽样的4%约翰的order_ids加上4%随机抽样的jay的order_ids等等。 (希望这说清楚)

我发布了同样的问题但是对于Access SQL,但我能够找出一些东西才能使用常规SQL。我对SQL不是很有经验。任何指导将不胜感激!!!!! :)

1 个答案:

答案 0 :(得分:0)

如果是MySQL

SET @skip=1; 
SET @numrows=(select count(*) * 0.04 from test );
PREPARE STMT FROM 'SELECT distinct names FROM test order by rand() LIMIT ?, ?';
EXECUTE STMT USING @skip, @numrows;