gpt4 book ai didi

MySQL 显示评分最高的项目?

转载 作者:行者123 更新时间:2023-11-29 11:09:26 25 4
gpt4 key购买 nike

给出下表:

---movie---
id int(11)
description varchar(200)

---movie_has_rating---
movie_id int(11)
user varchar(100)
stars int(11) <-- A 1-5 star rating

如何使用 IMDb 加权平均值选择评分最高的 50 部电影

(WR) = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C  where:

R = average for the movie (mean) = (Rating)

v = number of votes for the movie = (votes)

m = minimum votes required to be listed

C = the mean vote across the whole report

假设 m 是 5 之类的东西?

最佳答案

这是一个可以解决您的问题的查询。我从方程中减少了 C,因为它只是一个缩放器,不会影响顺序。此查询中的每个零 (0) 都是您的 m 值,该参数无法从您提供的架构中派生。

SELECT * from movie 
LEFT JOIN
(SELECT v.movie_id AS movie_id, v.v AS v, r.r AS r
FROM (select movie_id, count(*) as v
FROM movie_has_rating
GROUP BY movie_id) v
LEFT JOIN (SELECT movie_id, avg(stars) as r
FROM movie_has_rating
GROUP BY movie_id) r ON v.movie_id = r.movie_id
) ratings ON movie.id = ratings.movie_id
ORDER BY (v/(v+0) * r + (0/(v+0))) DESC
LIMIT 50

关于MySQL 显示评分最高的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40859020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com