我在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,感謝您的問題,請參閱我對權重的編輯。 –