获得分组的平均结果

时间:2016-04-01 19:49:34

标签: mysql sql

我试图让每个用户的平均喜欢计数,其中偏移量尽可能接近我设置的值(但仍然会打破该值)。

select id, max(likes), user_id
from lookups
where offset < 30
group by media_id;

上面的查询将返回如下内容:

id    likes    user_id
1       2       1
2       7       1
3       6       1
4       9       2
5       5       2 
6       5       2
7       2       3
8       3       3

我想将此转换为每个用户的平均喜欢,而不计算上述查询不会返回的行,因此结果将是:

average_likes     user_id
     5              1
     6.333          2
     2.5            3

我如何使用sql执行此操作?

1 个答案:

答案 0 :(得分:0)

将查询粘贴到子查询中并再次GROUP BY

SELECT user_id,
    avg(maxlikes)
FROM (
    SELECT id,
        max(likes) AS maxlikes,
        user_id
    FROM lookups
    WHERE offset < 30
    GROUP BY ID, user_idd
    ) subquery
GROUP BY user_id