0
所以我有一个计算之间的两个用户的评价Pearson相关下面的SQL代码:如何把SQL查询到SQL函数
select @u1avg:=avg(user1_rating),
@u2avg:=avg(user2_rating),
@u1sd:=stddev(user1_rating),
@u2sd:=stddev(user2_rating)
from
(select r1.userId as User1_id,r1.rating as User1_rating,
r2.userId as User2_id,r2.rating as User2_rating
from mydb.ratings r1 join mydb.ratings r2 on r1.itemId = r2.itemid
where r1.userId=1 and r2.userId=2) sample;
select (1/(count(r1.rating-1)))*sum((([email protected])/@u1sd)*(([email protected])/@u2sd))*(count(r1.rating)/(1+count(r1.rating)))
from mydb.ratings r1 join mydb.ratings r2 on r1.itemId = r2.itemid
where r1.userId=1 and r2.userId=2;
我愿把它转换成一个函数,例如科尔(A ,B) 任何帮助将是有益的。
我得到的问题是,它说:样品说不准或类似的东西,但是如果我删除样品我得到一个错误说每个表都必须有别名。