【发布时间】:2023-03-15 04:57:02
【问题描述】:
您很快就会了解到,我对 SQL 很陌生。所以,我有许多表,一个是具有相应标题和电影 ID 的电影列表,另一个是评级列表 (0-5),其中包含任何用户提交的每个评级以及他们附加的电影 ID。我想将每部电影的平均评分与其他电影的平均评分进行比较,并生成一个包含结果的表格。到目前为止,我有:
SELECT movies.movieid as movieid1, movies.movieid as movieid2, 1 - ((ABS(AVG(ratings.rating) - AVG(ratings.rating)))/5) as average
FROM movies
JOIN ratings
ON movies.movieid = ratings.movieid
GROUP BY movies.movieid;
但是,这只是将每部电影与其自身进行比较,因此对所有电影的平均评分比较为 1.000。如何将每个 movieid 与每个其他唯一的 movieid 进行比较,而不是将它们与自己进行比较? 供参考,
谢谢!
【问题讨论】:
-
/ 5的作用是什么? -
请在您的问题中添加几行示例数据和预期结果。
标签: sql postgresql self-join