我有以下两个表:
users [id, email, name]
hobbies [id, name]
hobbies_users [hobby_id, user_id]
我的目标是确定每个用户的平均爱好数。
构建此 SQL 查询的正确方法是什么?我应该使用 LEFT JOIN 吗?感谢指向正确方向的指针。谢谢
最佳答案
您可以使用count()
和除法。如果您想要有兴趣爱好的用户的平均值:
select count(*) * 1.0 / count(distinct user_id)
from hobbies_users;
如果你想要所有用户的平均值,有多种方法,但我想我会选择:
select num_hobbies * 1.0 / num_users
from (select count(*) as num_hobbies from hobbies_users) hu cross join
(select count(*) as num_users from users) u
关于mysql - 给定两个表,如何找到关联表中的平均行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57084557/