.计算一个表中的记录与其他记录相比较的数量!
有一个表,有字段ID,F1-F9,SUM。F1-F9的值由1,2,3组成。
(为了好理解,本例子中数据只改变了F1,F2的值,其他的字段值不变)
ID F1 F2 F3 F4 F5 F6 F7 F8 F9 SUM
1 1 2 2 3 3 1 2 3 3
2 2 2 2 3 3 1 2 3 3
3 3 2 2 3 3 1 2 3 3
4 3 3 2 3 3 1 2 3 3
5 3 1 2 3 3 1 2 3 3
现计算每一条记录和其他记录字段相同数为8的数量,并将值存到当前记录SUM字段中。
例如:ID1和其他记录比较,与ID2有8个字段相同,与ID3有8个字段相同,与ID4有7个字段相同,
与ID5有7个字段相同,所以8个字段相同的数量为2,记录1的SUM值得到为2;
如此,依次比较ID2和其他记录的数量,依次比较ID3和其他记录的数量,
依次比较ID4和其他记录的数量,依次比较ID5和其他记录的数量.
结果如下表
ID F1 F2 F3 F4 F5 F6 F7 F8 F9 SUM
1 1 2 2 3 3 1 2 3 3 2
2 2 2 2 3 3 1 2 3 3 2
3 3 2 2 3 3 1 2 3 3 4
4 3 3 2 3 3 1 2 3 3 2
5 3 1 2 3 3 1 2 3 3 2
(表中记录数量可能是几万条,所以求运算速度比较快的方法)
已用下面的方法实现!现金问题是,表中数据比较多,下面的方法比较慢。有什么办法思路可以快速实现?
create table tb(ID int,F1 int,F2 int,F3 int,F4 int,F5 int,F6 int,F7 int,F8 int,F9 int,[SUM] int)
insert into tb values(1 ,1 ,2 ,2 ,3 ,3 ,1 ,2 ,3 ,3 ,null)
insert into tb values(2 ,2 ,2 ,2 ,3 ,3 ,1 ,2 ,3 ,3 ,null)