我有两个表(X和Y),例如将一个足球运动员映射到一个团队。表X中的数据可靠,但我不确定表Y中数据的可靠性。表X有3,000行,表Y有1,000行。通过使用表Y中的数据作为真值集或超集,如何计算表Y中的映射的准确性?
表X
PlayerID | Name | Team
007 | Sancho | Dortmund
010 | Messi | Barcelona
011 | Werner | Chelsea
001 | De Gea | Man Utd
009 | Lewan..ki | Bayern Mun
006 | Pogba | Man Utd
017 | De Bruyne | Man City
029 | Harvertz | Chelsea
005 | Upamecano | Leipzig
表Y
PlayerID. |Name | Team
010 | Messi | Man City
007 | Sancho | Man Utd
006 | Pogba | Man Utd
017 | De Bruyne| Man City
011 | Werner | Liverpool
006 | Pogba | Real Madrid
根据表X,我们可以看到只有玩家ID 006和017是正确的。但是玩家ID 006由于映射到两个不同的团队而部分准确。
您可以left join
并使用条件逻辑来计算精度。
在MySQL中,您可以这样表达:
select avg(y.playerID is not null) as accuracy_ratio
from x
left join y
on y.playerID = x.playerID
and y.name = x.name
and y.team = x.team
这将为您提供介于0
和之间的值1
,该值表示准确率(如果需要百分比,可以将其乘以100)。
请注意,这playerID
是以某种方式假定唯一标识两个表中的记录的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句