我的数据库中有一个包含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或实体框架中?
答案 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