我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle实现某表随机抽取数据(随机性抽取)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle实现某表随机抽取数据(随机性抽取)

Oracle实现某表随机抽取数据

目前我知道的三种方式:

1. 使用随机数

select * from (
      select * from  t_table order by dbms_random.value
) where rownum <= 1000
 
  • 概述 : 这种方式相对比较原始 , 就是 更具随机的值进行 排序 , 然后 再进行 获取 前 1000 行数据 .
  • 优点 : 随机性 好
  • 缺点 : 性能差 (当进行获取的数据量 越大 , 执行的时间就越长 )

2. 使用sample函数

select * from  t_table sample(10) where rownum <=1000
  • 概述 : sample函数 旨在 随机样本抽取 , 但是涵盖的数据 分布 非常不均匀 .
  • 优点 : 性能好 (执行的时间相对比较短)
  • 缺点 : 随机性差(因为涵盖的数据分布非常不均匀)

3. 结合上述两种方式(随机数+sample函数)

select * from (
    select * from t_table sample(10) order by dbms_random.value
) where rownum <= 1000 
  • 概述 : 这种是先使用sample函数 抽取部分数据, 再使用随机数进行排序 .
  • 优点 : 性能相对较好 (比方式一 性能好 , 比方式二 随机性好)
  • 缺点 : 数据命中率不能达到 百分百 (因为使用了 sample函数 , 当数据量比较少时 , 不能保证每次都能返回 获取的样本数据 , 抽样的表不能用 dblink[数据库连接])

Oracle数据库:随机查询100条数据

方法一

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

注:USER_INFO约40w条数据.

Oracle实现某表随机抽取数据(随机性抽取)

方法二

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

Oracle实现某表随机抽取数据(随机性抽取)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网(www.lsjlt.com)。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle实现某表随机抽取数据(随机性抽取)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Oracle实现某表随机抽取数据(随机性抽取)

目录oracle实现某表随机抽取数据1. 使用随机数2. 使用sample函数3. 结合上述两种方式(随机数编程网+sample函数)Orapythoncle数据库:随机查询100条数据方法一方法二总结Oracle实现某表随机抽取数据目前
Oracle实现某表随机抽取数据(随机性抽取)
2024-08-13

mysql随机抽取数据

-- 慢SELECT * FROM table_name ORDER BY rand() LIMIT 5;-- 较慢SELECT * FROM `table`WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id
mysql随机抽取数据
2020-09-09

MySQL中的随机抽取的实现

目录1. 引言2. 内存临时表3. 磁盘临时表4. 优先队列排序算法1. 引言现在有一个需求是从一个单词表中每次随机选取三个单词。这个表的建表语句和如下所示:mysql> Create table 'words'('id' int(1
2023-03-20

MySQL中的随机抽取如何实现

今天小编给大家分享一下MySQL中的随机抽取如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 引言现在有一个需求是
2023-07-05

C语言如何实现随机抽取纸牌程序

本篇内容主要讲解“C语言如何实现随机抽取纸牌程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言如何实现随机抽取纸牌程序”吧!程序设计要求本程序负责发一副标准纸牌,每张标准纸牌都有一种花色(
2023-06-29

shell 随机从文件中抽取若干行的实现方法

shuf -n5 main.txt sort -R main.txt | head -5 awk -vN=5 -vC="`wc -l file`" 'BEGIN{srand();while(n
2022-06-04

vue组件如何封装实现抽奖随机数

今天小编给大家分享一下vue组件如何封装实现抽奖随机数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、子组件
2023-06-29

php中通过数组进行高效随机抽取指定条记录的算法

php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序
2022-11-15

Linux  Shell中如何实现一个获取任意位数的随机密码

这篇文章主要介绍了Linux Shell中如何实现一个获取任意位数的随机密码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Shell 命令行,实现一个获取任意位数的随机密码
2023-06-09

编程热搜

目录