【发布时间】:2018-05-13 04:36:21
【问题描述】:
我有一个数据库,它只是一个包含 3 列的表:viewer_id、movie_id、Ranking (整数) (整数) (文本)
此表中的一行代表某个观众看过某部电影。
我需要编写一个返回的查询: 观看了某个观众已观看的所有电影中至少 75% 的所有观众的 ID(我们称他为 alex)。
我设法返回与给定观众观看相同电影的所有观众的所有 ID:
SELECT otherss.viewer_id FROM
((SELECT viewer_id,movie_id FROM viewers_movies_rankings
WHERE viewer_id= 313) AS alex
INNER JOIN (SELECT viewer_id,movie_id FROM viewers_movies_rankings
WHERE viewer_id != 313) AS otherz
ON alex.movie_id = otherss.movie_id)
这段代码返回给定观众 (alex) 观看的电影数量:
SELECT COUNT (*) AS num FROM viewers_movies_rankings WHERE viewer_id = 313
我怎样才能完成这个查询? 我正在努力使用“分组依据”以及如何计算其他观众看过多少类似电影。
谢谢
【问题讨论】:
标签: sql postgresql