【问题标题】:random sample on SQL resultsSQL 结果的随机样本
【发布时间】:2014-04-21 03:28:31
【问题描述】:

我有一个表,其中有一个名为名称的列,它意味着有几行具有相同的名称。我需要找到一种方法来进行查询,结果是每个名称的行的 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

对于结果,我需要 john 的 order_ids 的 4% 的随机样本加上 jay 的 order_ids 的 4% 的随机样本,依此类推。 (希望这说明清楚)

我发布了同样的问题,但针对 Access SQL,但是我能够弄清楚一些事情以使用常规 SQL。我对 SQL 的经验还不是很丰富。任何指导将不胜感激!!!!!!! :)

【问题讨论】:

    标签: mysql sql sample random-sample


    【解决方案1】:

    如果是 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;
    

    【讨论】:

      猜你喜欢
      • 2010-10-18
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 2015-07-25
      • 2021-06-16
      • 2014-08-04
      • 1970-01-01
      • 2013-02-15
      相关资源
      最近更新 更多