簡體   English   中英

如何從MySQL中隨機選擇記錄樣本?

[英]How to select a random sample of records from MySQL?

請考慮下表:

tweets
-----------------------
id  tweet         class
-----------------------
1   Foo bar baz!  2
2   Lorem ipsum   2
3   Foobar lorem  3
4   Activi set    1
5   Baz baz bar?  3
7   Dolor mez foo 3
8   Samet set bar 1

實際上,該表具有600,000條記錄,但是如示例表中所示,某些id已被刪除(因此,最高id > 600,000)。 class可以是123

我需要隨機選擇 1200條推文,每個class 400條。 這可能與一個查詢有關嗎?

如果class (3)的可能值數量有限,則可以輕松地使用一組UNION查詢來完成,每個查詢都有自己的ORDER BY RAND()LIMIT 400

(SELECT id, tweet, class FROM tweets WHERE class = 1 ORDER BY RAND() LIMIT 400)
UNION
(SELECT id, tweet, class FROM tweets WHERE class = 2 ORDER BY RAND() LIMIT 400)
UNION
(SELECT id, tweet, class FROM tweets WHERE class = 3 ORDER BY RAND() LIMIT 400)

為了將ORDER BY應用於每個UNION組,該組必須包含在()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM