| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1745 人关注过本帖
标题:[求助]求一下随机取纪录的写法
只看楼主 加入收藏
suntao
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2006-7-23
收藏
 问题点数:0 回复次数:13 
[求助]求一下随机取纪录的写法

我想从数据库里随机取纪录,随机取好像
SELECT * from b order by newid()就行了,
但又要按字段a取,比如a的直的越大,他出现的几率就越高,有没有办法?
跪求高手指点,眼泪哗哗地~。。。

搜索更多相关主题的帖子: 纪录 数据库 随机 order 
2007-04-13 11:12
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 

对A加权 自己定义权值

自己写一个函数比如叫 PartPerc 先取得max(a)和min(a) 然后对max(a)-min(a)这个区域里面的值加权
比如 return (a - min(a)) / (max(a)-min(a) )

然后 取得一个随机数
然后 select top 10 * from b where dbo.PartPerc(a) > @random order by newid() 这样a的值越大 记录被取到的几率就越高


然后你再从这个结果集里面随机取吧

2007-04-13 12:05
suntao
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2006-7-23
收藏
得分:0 

虽然没看懂,先谢谢斑竹,加权是什么意思?在什么地方写函数?求斑竹指点,呵呵,这个事搞定了,斑竹来南京,我请吃饭,呵呵!!!


2007-04-13 12:32
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

老大为什么要用随机数,还不如直接和一个比较大的数比,比如3/4什么的,随机数不容易控制啊,要是产生的随机数很小那函数不是白写了


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-04-13 12:57
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
棉花糖... 如果不是随机数 怎么体现 几率 这个概念?

我的方案意思是: 每次产生一个随机数 然后把权值大于这个随机数的记录随机抽取出来
这样不就是数越大 被取到的机会越大么? 如果和固定数比 那比这小的 就永远取不到了
其实就是概率论了.

楼主 加权不懂没关系 就是给每个字段分配一个 系数 这个系数可以看做是被抽取的概率.
在数据库里面写函数 在存储过程里面调用函数 或者直接在查询分析器下调用函数都可以

2007-04-13 14:06
suntao
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2006-7-23
收藏
得分:0 

斑竹方便留个qq吗?


2007-04-13 14:11
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

老大的这个思想厉害,学习了


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-04-13 14:32
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
单位封q的

2007-04-13 14:50
suntao
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2006-7-23
收藏
得分:0 

斑竹,@random是什么?


2007-04-15 08:17
帅哥一条虫
Rank: 1
等 级:新手上路
威 望:1
帖 子:65
专家分:0
注 册:2006-10-15
收藏
得分:0 
定义的随机变量
2007-04-15 13:27
快速回复:[求助]求一下随机取纪录的写法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023735 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved