PostgreSQL veritabanında c1, c2 ... cn sütunları bulunan bir tablom var. Her satırı, v1, v2 ... vn değerlerinin bir tuple karşılaştırmasını yapan bir sorgu çalıştırmak istiyorum. Sorgu tam eşleşme dönmemesi ancak değer vektörü v benzerlik azalan sipariş satırların listesini dönmelidirSQL: Tam olarak eşleşmeyen satırları bulun ancak tam olarak değil
Örnek:.
tablo içeren spor kayıtlar:
1,USA,basketball,1956
2,Sweden,basketball,1998
3,Sweden,skating,1998
4,Switzerland,golf,2001
Şimdi zaman V = (İsveç, basketbol, 1998) ile bu tabloya karşı bir sorgu çalıştırıyorum, bu vektörle benzerlik gösteren tüm kayıtları almak, eşleşen sütun sayısına göre sıralamaya göre sıralamak istiyorum:
2,Sweden,basketball,1998 --> 3 columns match
3,Sweden,skating,1998 --> 2 columns match
1,USA,basketball,1956 --> 1 column matches
Satır 4 hiç eşleşmediğinden döndürülmedi.
Düzenleme: Tüm sütunlar eşit derecede önemlidir. Her ne kadar gerçekten düşündüğümde, her bir sütuna farklı bir ağırlık faktörü de verebilirsem hoş bir eklenti olurdu.
Satırları bir milyon satırla çalıştırdığımda bile, makul bir süre içinde döndürecek olası bir SQL sorgusu var mı?
Böyle bir sorgu nasıl görünebilir?
İyi soru IMHO – objectNotFound
Soru: eşleşen satırları sıralama söz konusu olduğunda her sütun eşit ağırlığa sahip mi? – objectNotFound
objectNotFound, soru için teşekkürler, ağırlıklar hakkındaki düzenlememi görün. –