189 8069 5689

oracle如何随机抽取 oracle如何随机抽取10%的数据

oracle随机抽取百分之五十的函数

没看懂你的抽取50%是什么意思,可以参考如下方案:

站在用户的角度思考问题,与客户深入沟通,找到临翔网站设计与临翔网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟空间、企业邮箱。业务覆盖临翔地区。

1:随机抽取前50条记录:

select *

from (select * from scott.emp order by dbms_random.random)

where rownum 51

2:随机取1~100之间的数据:

select dbms_random.value(1,100) from dual

oracle随机抽取记录?

真正要随机应该这样写:

select * from

(select sale_id,user_id,row_number() over (partition by sale_id order by rnv) rn

from

(select sale_id,user_id,dbms_random.value() rnv from table1

where fee=5000 and sms_fee0 and gprs_cmwap_fee0 and statis_month=201003)

)

where rn=100

order by sale_id,user_id;

求如何在oracle中分类抽取随机记录

--如果员工月度业务单小于3条的员工和部门

select * from talbe_name where 员工 in(

select 部门,员工,count(1) from table_name

where 结单时间开始时间

and 结单时间结束时间

group by 部门,员工

having count(1)3)

and 结单时间开始时间

and 结单时间结束时间;

--如果员工月度业务单大于3条的员工,随机抽取3条单子

select * from

(select t.*,rownum from talbe_name where 员工 in(

select 部门,员工,count(1) from table_name

where 结单时间开始时间

and 结单时间结束时间

group by 部门,员工

having count(1)3)

and 结单时间开始时间

and 结单时间结束时间

order by dbms_random.value)

where rownum3;

Oracle sql语句随机抽取一个表数据,要求:抽取数量可以给定,条件是分数字段满足100分

1、需要用到两个字符类函数instr和substr,具体用法介绍如下:

函数:字符定位函数

instr

语法:instr(待处理的字符串,需要查找的字符,开始查找的起始位置,第n次出现)

返回值:字母所在的位置,没有返回

0;

函数:字符定位函数

substr

语法:substr('要切割的值',从第几个位置开始切割,切割几位);

返回值:截取的字符串。

2、该题实现步骤,以字段a内容为'武汉一一科技公司(2009年2月注销)'为例:

第一步:先从字段a的字段第一个字符往前找左括号'('

第一次出现的位置,如下:

select

instr('武汉一一科技公司(2009年2月注销)',

'(',

1,

1)

--

9

from

dual;

第二步:从字段第一个字符开始,一直找出左括号'('的前一位就行,如下:

select

substr('武汉一一科技公司(2009年2月注销)',

1,

instr('武汉一一科技公司(2009年2月注销)',

'(',

1,

1)

-

1)

from

dual;

注:如果某某公司名称本身可能含有括号的话,建议从最后一个字符倒着往回找左括号出现第一次的位置,即

select

instr('武汉一一科技公司(2009年2月注销)',

'(',

-1,

1)

--

9

from

dual;

3、最终答案

select

select

substr(a,

1,

instr(a,

'(',

-1,

1)

-

1)

from

table

;

[Oracle]从一个表中随机取出6条记录的sql语句

oracle随机读取表中的N条数据方法:

1) select * from (select * from tablename order by sys_guid()) where rownum N;

2) select * from (select * from tablename order by dbms_random.value) where rownum N;

3) select * from (select * from table_name sample(10) order by trunc(dbms_random.value(0, 1000))) where rownum N;说明:

sample(10)含义为检索表中的10%数据,sample值应该在[0.000001,99.999999]之间,其中

sys_guid()

dbms_random.value都是内部函数

注:

在使1)方法时,即使用sys_guid()

这种方法时,有时会获取到相同的记录,即:和前一次查询的结果集是一样的(可能是和操作系统有关:windows正常,linux异常;也可能是因为sys_guid()函数本身的问题,有待继续研究)

所以,为确保在不同的平台每次读取的数据都是随机的,建议采用2)和3)两种方案,其中2)方案更常用。3)方案缩小了查询的范围,在查询大表,且要提取数据不是很不多的情况下,会对查询速度上有一定的提高


当前标题:oracle如何随机抽取 oracle如何随机抽取10%的数据
文章起源:http://cdxtjz.cn/article/hgpihi.html

其他资讯