查找每个项目的平均评级

Zee*_*ang 1 mysql

我有一个带有feilds的表:file_id,rating,user_id

每个user_id有一个评级,因此单个file_id可能有很多评级(按0-5的比例).

我想为每个file_id找到平均评级,然后显示5个具有最高平均评级的file_id.

其实我的SQL查询看起来像:

SELECT m.server_domain, m.original_name, m.type, m.title, m.views, 
    m.description, m.hash, AVG(mr.rating_scale5) as avg_rating_scale5 
FROM c7_media m, c7_storage s, c7_media_ratings mr 
WHERE s.public=1 AND m.storage_hash = s.hash AND m.hash = mr.media_hash
GROUP BY mr.media_hash
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Zeeshan

gah*_*ooa 7

分组按a file_id然后按平均顺序排序.切断所有低于前5名的记录.

SELECT 
    file_id, AVG(rating) as avg_rating 
FROM 
    table 
GROUP BY 
    file_id 
ORDER BY 
    avg_rating DESC 
LIMIT 5
Run Code Online (Sandbox Code Playgroud)