本人在做一个数据检查系统,数据库里有上百万条数据(每个数据可能都是0到10000的整数,具体啥数据不清楚),现在要检测“有没有连续出现相同或很接近的数值(两个数字不超过5即相似)”。如果连续出现超过10条相似记录就要记录下来ID。因为数据量大,所以想来问问大神们有没有什么高效的做法?
题目说连续 => 已经排好序了 => 那么读取的顺序就是单向了 假设第一个数a1 第二个数a2 如此类推
if a(n+1)~a(n+11) in (an-5, an+5) print(n); else n++;
测试了一下,写了个存储过程,取连续个相连数据差大于-5小于5的数据
假设id是连续递增的
1、结果:
2、表结构
3、存储过程: