数据库
首页 > 数据库> > 来自相关表的mysql平均计数

来自相关表的mysql平均计数

作者:互联网

我有两个表:

用户表

用户列表

故事

故事列表-每个用户多个故事

我想知道用户拥有的平均故事数. (不是特定用户,对于所有用户)

预期结果:每位用户平均有2.3个故事

尝试过:

从(按user_id的故事分组选择w中选择count(distingt user_id)作为w)avg(w)
以上跑了,但似乎不正确

也:

SELECT user_id,(从用户w.user_id = u.user_id的故事中选择COUNT(*)个)作为来自用户u的TotalStories;

返回每个用户的平均故事,而不是整体的平均故事

解决方法:

首先,您需要知道每个用户的故事数:

select count(s.id) as n
from users u left outer join stories s on u.id = s.user_id
group by u.id

然后将avg应用于该值:

select avg(n)
from (
    select count(s.id) as n
    from users u left outer join stories s on u.id = s.user_id
    group by u.id
) as dt

标签:aggregate-functions,sql,mysql
来源: https://codeday.me/bug/20191102/1988886.html