2014-04-21 67 views
1

我有一個名爲name的列的表,它的意思是在那裏有幾個同名的行。我需要找到一種方法來進行查詢,從而爲每個名稱的行提供4%的隨機樣本。例如,如果表中每個名稱有100行,那麼它爲該列上的每個名稱返回4個隨機行。那有意義嗎?關於SQL結果的隨機樣本

這是我的表看起來像:

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 

而對於結果,我需要的約翰order_ids的4%進行隨機抽樣加上週杰倫的order_ids的4%,隨機抽樣等。 (希望這說清楚)

我發佈了這個相同的問題,但對於Access SQL,但是我能夠弄清楚一些事情,以便使用常規SQL.I's在SQL上還不是很有經驗。任何指導將不勝感激!!!!! :)

+0

示例 – rodrigocf

回答

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;