我在PostgreSQL数据库中有一个表,其中列c1,c2 ... cn。我想运行一个查询,将每行与值为v1,v2 ... vn的元组进行比较。查询不应该返回精确匹配,但应该返回降序相似值矢量V下令行的列表SQL:查找紧密匹配但不完全匹配的行
例:
表中包含运动记录:
1,USA,basketball,1956
2,Sweden,basketball,1998
3,Sweden,skating,1998
4,Switzerland,golf,2001
现在,当我对v =(瑞典,篮球,1998)对该表进行查询,我想获得与此矢量相似的所有记录,按照匹配列数从大到小的顺序排列:
2,Sweden,basketball,1998 --> 3 columns match
3,Sweden,skating,1998 --> 2 columns match
1,USA,basketball,1956 --> 1 column matches
行4不返回,因为它根本不匹配。
编辑:所有列同样重要。虽然,当我真的想到它的时候......如果我可以给每个列赋予不同的权重因子,这将是一个很好的附加组件。
是否有任何可能的SQL查询会在合理的时间内返回行,甚至当我对一百万行运行它时?
这样的查询会是什么样子?
好问题恕我直言 – objectNotFound
问题:每列在排列匹配行时有相同的权重吗? – objectNotFound
objectNotFound,感谢您的问题,请参阅我对权重的编辑。 –