欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle實(shí)現(xiàn)某表隨機(jī)抽取數(shù)據(jù)(隨機(jī)性抽取)

 更新時(shí)間:2024年08月12日 14:59:11   作者:蝸牛_小吳  
這篇文章主要介紹了Oracle實(shí)現(xiàn)某表隨機(jī)抽取數(shù)據(jù)(隨機(jī)性抽取),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Oracle實(shí)現(xiàn)某表隨機(jī)抽取數(shù)據(jù)

目前我知道的三種方式:

1. 使用隨機(jī)數(shù)

select * from (
      select * from  t_table order by dbms_random.value
) where rownum <= 1000
 
  • 概述 : 這種方式相對比較原始 , 就是 更具隨機(jī)的值進(jìn)行 排序 , 然后 再進(jìn)行 獲取 前 1000 行數(shù)據(jù) .
  • 優(yōu)點(diǎn) : 隨機(jī)性 好
  • 缺點(diǎn) : 性能差 (當(dāng)進(jìn)行獲取的數(shù)據(jù)量 越大 , 執(zhí)行的時(shí)間就越長 )

2. 使用sample函數(shù)

select * from  t_table sample(10) where rownum <=1000
  • 概述 : sample函數(shù) 旨在 隨機(jī)樣本抽取 , 但是涵蓋的數(shù)據(jù) 分布 非常不均勻 .
  • 優(yōu)點(diǎn) : 性能好 (執(zhí)行的時(shí)間相對比較短)
  • 缺點(diǎn) : 隨機(jī)性差(因?yàn)楹w的數(shù)據(jù)分布非常不均勻)

3. 結(jié)合上述兩種方式(隨機(jī)數(shù)+sample函數(shù))

select * from (
    select * from t_table sample(10) order by dbms_random.value
) where rownum <= 1000 
  • 概述 : 這種是先使用sample函數(shù) 抽取部分?jǐn)?shù)據(jù), 再使用隨機(jī)數(shù)進(jìn)行排序 .
  • 優(yōu)點(diǎn) : 性能相對較好 (比方式一 性能好 , 比方式二 隨機(jī)性好)
  • 缺點(diǎn) : 數(shù)據(jù)命中率不能達(dá)到 百分百 (因?yàn)槭褂昧?sample函數(shù) , 當(dāng)數(shù)據(jù)量比較少時(shí) , 不能保證每次都能返回 獲取的樣本數(shù)據(jù) , 抽樣的表不能用 dblink[數(shù)據(jù)庫連接])

Oracle數(shù)據(jù)庫:隨機(jī)查詢100條數(shù)據(jù)

方法一

SELECT m.*
  FROM (SELECT u.* FROM USER_INFO u order by dbms_random.value()) m
 where rownum < 100;

注:USER_INFO約40w條數(shù)據(jù).

方法二

SELECT * FROM USER_INFO SAMPLE(50) WHERE ROWNUM < 101;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論