我有一个带有名称列的表,这意味着要有几行具有相同的名称。 我需要找到一种进行查询的方法,以使每个名称的行的随机抽样率为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%的john's order_ids的随机样本,再加上4%的jay的order_ids的随机样本,依此类推。 (希望这很清楚)

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

===============>>#1 票数: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;

  ask by rodrigocf translate from so

未解决问题?本站智能推荐: