Получить аналогичных сотрудников на основе их значений атрибутов - PullRequest
1 голос
/ 13 января 2020

Рассмотрим следующую примерную таблицу («Клиент») с этими записями

=========
Customer
=========
-----------------------------------------------------------------------------------------------
| customer-id | att-a | att-b | att-c | att-d | att-e | att-f | att-g | att-h | att-i | att-j |
--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| customer-1 | att-a-7 | att-b-3 | att-c-10 | att-d-10 | att-e-15 | att-f-11 | att-g-2 | att-h-7 | att-i-5 | att-j-14 |
--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| customer-2 | att-a-9 | att-b-7 | att-c-12 | att-d-4 | att-e-10 | att-f-4 | att-g-13 | att-h-4 | att-i-1 | att-j-13 |
--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| customer-3 | att-a-10 | att-b-6 | att-c-1 | att-d-1 | att-e-13 | att-f-12 | att-g-9 | att-h-6 | att-i-7 | tt-j-4 |
--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| customer-19 | att-a-7 | att-b-9 | att-c-13 | att-d-5 | att-e-8 | att-f-5 | att-g-12 | att-h-14 | att-i-13 | att-j-15 |
--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+

У меня есть эти записи и еще много записей, выгруженных в базу данных SQL, и я хотел найти 10 лучших похожих клиентов на основе значение атрибута. Например, customer-1 и customer-19 имеют по крайней мере одно совпадение значений в одном столбце .ie "att-a-7" , поэтому на выходе должно быть 2 клиента -ид или аналогичные клиенты, которые являются customer-1 и customer-19 . PS - может быть один или несколько столбцов, похожих в разных строках.

Я использую технику работы с окнами, чтобы найти топ-10 похожих клиентов, и я не уверен, что я прав.

Следующие мои подход, который я использовал в своем запросе:

 row_number() over (partition by att-a, att-b,..,att-j order by customer-id) as customers 

- это правильно.

...