我需要在这个数据库上运行一个报告,我无法弄清楚如何才能得出最终结果。我希望你能理解这个问题。
这是我正在研究的数据库的ERD。 我需要根据每种类型和每年的平均评分生成一份排名电影的报告。
结果应与此类似:
YEAR | Genre | Movie Name | Rating | Rank
2017 | Fantasy | Starwars3 | 5 | 1
2012 | Fantasy | Starwars1 | 4 | 2
到目前为止,我所做的代码看起来像这样
SELECT f.year, g.name,f.title, AVG(rating), RANK() OVER (ORDER BY AVG(rating))
FROM Film f
JOIN FilmGenre fg
ON (fg.filmid=f.id)
JOIN Genre g
ON (g.id=fg.genreId)
GROUP BY CUBE (f.year,g.name)
代码给出错误,提前致谢。
答案 0 :(得分:0)
对于您的示例结果,您似乎想要:
SELECT f.year, g.name, f.title, f.rating),
RANK() OVER (ORDER BY rating DESC) as ranking
FROM Film f JOIN
FilmGenre fg
ON fg.filmid = f.id JOIN
Genre g
ON g.id = fg.genreId
GROUP BY f.year, g.name, f.title, f.rating;