我有一个名为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不是很有经验。任何指导将不胜感激!!!!! :)
答案 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;