我当前的查询内容如下:
SELECT entry_id, user_id, cat_id, AVG( rating ) as avg_rate
FROM `entry_rate`
WHERE 1
GROUP BY entry_id
Run Code Online (Sandbox Code Playgroud)
cat_id 涉及不同的类别:1、2、3 或 4
有没有一种方法可以在不设置附加表的情况下找到每个类别中每个用户的最大平均值?每个 user_id 的回报可能是 4 个最大 avg_rate
例如,请访问以下链接:
http://lh5.ggpht.com/_rvDQuhTddnc/S8Os_77qR9I/AAAAAAAAA2M/IPmzNeYjfCA/s800/table1.jpg
可能不是最有效的方法:
select user_id, cat_id, MAX(avg_rate)
FROM (
SELECT entry_id, user_id, cat_id, AVG( rating ) as avg_rate
FROM entry_rate
GROUP BY entry_id, user_id, cat_id) t
GROUP BY user_id, cat_id
Run Code Online (Sandbox Code Playgroud)