‘壹’ 现在谁能告诉我数据库里面如何实现抽样啊!!急啊
select top 10 * from employee order by newid()
随机抽10条.
‘贰’ 请教大神,查询sql等间距抽样如何实现(数据库oracle)
撰写存储过程,定义变量i每次加10,1作为一个特殊的id来进行处理,
如果不写存储过程,建议创建一个步长为10的序列,建立一个临时表a,插入序列值,然后用业务表关联a表。
‘叁’ SQL Server 2008 不放回抽样算法及代码写法
declare@aint,@bint,@cint,@dint,@eint,@fint,@gint
set@g=1
select@a=right(rand(),5)--模拟随机五个数字
select@b=@a/10000,--求出万位的单个数字
@c=(@a-@b*10000)/1000,--求出千位的单个数字
@d=(@a-@b*10000-@c*1000)/100,--求出百位的单个数字
@e=(@a-@b*10000-@c*1000-@d*100)/10,--求出十位的单个数字
@f=@a-@b*10000-@c*1000-@d*100-@e*10--求出个位的单个数字
if(@f-@e=1)--比较每个相邻的数字是否连续数字,如果是的话累计加1
set@g=@g+1
if(@e-@d=1)--比较每个相邻的数字是否连续数字,如果是的话累计加1
set@g=@g+1
if(@d-@c=1)--比较每个相邻的数字是否连续数字,如果是的话累计加1
set@g=@g+1
if(@c-@b=1)--比较每个相邻的数字是否连续数字,如果是的话累计加1
set@g=@g+1
if(@b-@a=1)--比较每个相邻的数字是否连续数字,如果是的话累计加1
set@g=@g+1
if(@g=1)--如果计数变量还是初始值1的时候,把变量清0。
set@g=0
printconvert(varchar(10),@a)+'='+convert(varchar(10),@b)+'+'+convert(varchar(10),@c)+'+'+convert(varchar(10),@d)+'+'+convert(varchar(10),@e)+'+'+convert(varchar(10),@f)+'一共有'+convert(varchar(10),@g)+'位连续数字'--显示结果
--最后不知道你需要插入的目标表是什么,你只好自己插入了。
--如果帮到你的话,请采纳~~谢谢。
‘肆’ 在SQL中怎么样获取随机数
1、随机小数 select rand(),
‘伍’ SQL语句如何按照概率随机抽取数据
--题目没有表达清楚,我就写个差不多的sql给你吧。
--通过case语句来判断返回一个概率
selectid,state
casestatewhen1then0.1when2then0.3else0.05endas概率
from表a
‘陆’ sql如何进行分层随机抽样
--按大、中、小
分别选取
然后再组合
--按新字段重新排序后,你选出来的就是随机的了
select
top
60
percent
*
from
table_1
where
A='大'
order
by
B
union
all
select
top
60
percent
*
from
table_1
where
A='中'
order
by
B
union
all
select
top
60
percent
*
from
table_1
where
A='小'
order
by
B
‘柒’ 如何在sql中随机抽样
如果是随机从表中选出N条记录的话:
SELECT TOP(N) *
FROM [表明]
ORDER BY newid()
‘捌’ SQL查询语句 以及筛选方法
你的表的月份不是数字型的,这个比较麻烦,如果是数字的话,一条语句就能实现。
给你个思路,你可以导出临时表,然后把月份更新成数字,那样就比较省事了。假设你导出的临时表中的月份已经更新成1、2、3...12的形式。
select a.月份,a.项目,
(select sum(预算金额) from (select 月份,项目,max(预算金额) as 预算金额 from 临时表 group by 月份,项目) b where 月份<=a.月份 and 项目=a.项目) as 预算总额,
(select sum(发生费用) from 临时表 where 月份<=a.月份 and 项目=a.项目) as 发生总额
from 临时表 a
group by a.月份,a.项目
这是一条语句列出各月、各项目的数据情况,如果需要指定月份和项目,则在where 中限定即可。
‘玖’ 取样统计的SQL语句怎么写
oracle查询语句: select 字段名 from 表名 (where 判断条件); oracle的统计函数(count) select count(字段名),字段1,字段2 from 表名 (where 判断条件) group by 字段1,字段2;
‘拾’ sql 随机抽取几条数据的方法 推荐
四种数据库随机获取10条数据的方法
SQL Server:
SELECT TOP 10 * FROM T_USER ORDER BY NEWID()
ORACLE:
SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10
MySQL:
SELECT * FROM T_USER ORDER BY RAND() LIMIT 10
Access:
SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])
这条语句在 Access 中的“查询”中是可以运行并得到随机结果的,但在 ASP.NET等后台程序代码中却无法得到预期的随机效果。
正确的写法如下:
以ASP.NET为例:
Random random = new Random(System.Guid.NewGuid().GetHashCode());
int r = random.Next();
string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自动编号字段)"