mysql—如何正确指定从同一列中减去总和中的值时的where条件

pprl5pva  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(280)

我在这方面很业余,但我想我知道我在哪些方面出了问题。我要做的是通过比较memberscores表中的rating列中的用户评分来创建一个100分的相似度评分,其中两个定义的userid($userid和$member)对于任何具有相同movieid值的内容都有一个现有评分(1-10)。
例如,memberscores具有以下列和数据:

movieid  |   userid   |   rating (out of 10)   
================================
   1    |     8      |    6
   2    |     6      |    10
   3    |     8      |    4
   2    |     8      |    7
   5    |     8      |    6
   3    |     6      |    8
   1    |     6      |    5

所以如果 $userid = 8 以及 $member = 6 在userid列中,我想要得到的结果是 73 (可能有100个)。从技术上讲,答案是73.333,但我四舍五入到最接近的数字。
我想我错的地方是我没有正确定义下面强调的那些条件。。。

SELECT ROUND(SUM(10-ABS((memberscores.rating WHERE memberscores.userid=$member)-(memberscores.rating WHERE memberscores.userid=$userid)))*10/count(movies.id)) as per
FROM movies 
INNER JOIN memberscores 
ON movies.id=memberscores.movieid 
WHERE userid=$userid 
and (memberscores.rating WHERE userid=$member) <> 0 
and (movies.genre1='Fantasy' or movies.genre2='Fantasy' or movies.genre3='Fantasy') 
GROUP BY userid

任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题