Sql 查找两行的相似性百分比
我的数据库中有一个包含4列的表,其中包含许多实体。我想将所有行与给定的样本进行比较,并计算行与样本之间的相似性百分比 假设此表中有3行,如下所示:Sql 查找两行的相似性百分比,sql,sql-server,entity-framework,Sql,Sql Server,Entity Framework,我的数据库中有一个包含4列的表,其中包含许多实体。我想将所有行与给定的样本进行比较,并计算行与样本之间的相似性百分比 假设此表中有3行,如下所示: Franck | 15 | male | Spain Hadi | 20 | male | Iran Deniz | 10 | Female | Turkey Franck | 15 | male | Spain | 50% Hadi | 20 | male | Iran | 75% Deniz | 10 | Fe
Franck | 15 | male | Spain
Hadi | 20 | male | Iran
Deniz | 10 | Female | Turkey
Franck | 15 | male | Spain | 50%
Hadi | 20 | male | Iran | 75%
Deniz | 10 | Female | Turkey | 0%
并希望搜索此示例:
Hadi | 15 | male | Iran
因此,我希望得到显示此样本与行之间匹配百分比的结果,如下所示:
Franck | 15 | male | Spain
Hadi | 20 | male | Iran
Deniz | 10 | Female | Turkey
Franck | 15 | male | Spain | 50%
Hadi | 20 | male | Iran | 75%
Deniz | 10 | Female | Turkey | 0%
有没有什么工具或常用方法可以帮助我做到这一点?在SQL Server或实体框架中?可以使用
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
您可以使用
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
根据你的句子
计算行之间的相似度百分比
,你提到的相似度到底是多少?我是说,50%、75%和0%是如何计算的。请你再举几个例子好吗?根据你的句子计算行之间的相似度百分比,你提到的相似度到底是多少?我是说,50%、75%和0%是如何计算的。请你再举几个例子好吗?谢谢你的解决方案。谢谢你的解决方案。