我有一个带有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
分组按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)
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |