我有以下两个表:
users [id, email, name]
hobbies [id, name]
hobbies_users [hobby_id, user_id]
我的目标是确定每个用户的AVG爱好数量。
构造此SQL查询的正确方法是什么?我应该使用左联接吗?沿正确方向欣赏指针。谢谢
答案 0 :(得分:3)
您可以使用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