查找两行的相似百分比

时间:2019-08-04 14:28:52

标签: sql sql-server entity-framework

我的数据库中有一个包含4列的表,其中包含许多实体。我想将所有行与给定样本进行比较,并计算行与样本之间的相似度百分比。

假设此表中有3行,如下所示:

Franck | 15 | male   | Spain
Hadi   | 20 | male   | Iran
Deniz  | 10 | Female | Turkey

并要搜索此样本:

Hadi | 15 | male | Iran

因此,我希望得到的结果显示此样本与像这样的行之间的匹配百分比:

Franck | 15 | male   | Spain  | 50%
Hadi   | 20 | male   | Iran   | 75%
Deniz  | 10 | Female | Turkey | 0% 

是否有任何工具或常用方法可以帮助我做到这一点?在SQL Server或实体框架中?

1 个答案:

答案 0 :(得分:4)

您可以使用CASE子句检查列并根据您的规则分配值。例如:

select
  *,
  case when name = 'Hadi' then 1 else 0 end +
  case when age = 15 then 1 else 0 end +
  case when sex = 'male' then 1 else 0 end +
  case when country = 'Iran' then 1 else 0 end 
  * 25 as percent
from t