读书人

求数据一算法

发布时间: 2012-01-24 23:11:54 作者: rapoo

求数据一算法,高手请进!!
我数据表中一字段值是由0到9任意三位数组合而成的,我想得到所有的数据中每个记录中每个数字出现的次数
还有我要得到每个记录中第一位数字跟以前记录的三个数字比较在上次最近出现之间隔着有多少行?
比如:
1:256
2:846
3:752
4:165
5:298
那第五位数第一位数2第一次出现是在记录3中,所以 我要得到的值是1之间隔的行是第四行,而在这五个记录中2出现的次数为3,9出现的次数为1,8出现的次数为2依此类推,得到所有的数字的出现次数。

[解决办法]
数据量有多大?结果以什么形式保存?
知道了这些才好决定用什么算法
[解决办法]
在数据表中计算间隔行是很不可靠的,建议改变思路,用ORDER BY排序后得到的结果更科学
[解决办法]
统计数字出现的次数,可以直接用SQL语句做,access数据库这样:
select sum(iif(len(qty)-len(replace(qty, "1 ", " ")),len(qty)-len(replace(qty, "1 ", " ")),0)) as 1,
sum(iif(len(qty)-len(replace(qty, "2 ", " ")),len(qty)-len(replace(qty, "2 ", " ")),0)) as 2,
......
sum(iif(len(qty)-len(replace(qty, "0 ", " ")),len(qty)-len(replace(qty, "0 ", " ")),0)) as 0,
from (select top 5 qty from tb order by id)

其中qty是你数字字段,测试了一下可以通过

读书人网 >VB

热点推荐