我们有一个允许用户创建自己的组的工具。在这些组中,用户可以撰写帖子。我试图确定的是小组的规模与该小组的职位总数之间的关系。同一查询中不同表格上的多次计数
我可以通过SQL语句来获取组名称和该组中用户的数量(查询1)以及组名称和帖子数量(查询2)的列表,但我希望两者都可以在相同的查询中。
查询1
select count(pg.personID) as GroupSize, g.GroupName
from Group g inner join PersonGroup pg g.GroupID = pg.GroupID
where LastViewed between @startDate and @enddate and
g.Type = 0
group by g.GroupID, g.GroupName
order by GroupSize
查询2
select count(gp.PostID) as TotalPosts, g.GroupName
from Group g inner join GroupPost gp on g.GroupID = gp.GroupID
inner join Post p on gp.PostID = p.PostID
where g.Type = 0 and
gp.Created between @startDate and @enddate
group by g.GroupID, g.GroupName
order by TotalPosts
**注:一个人可以张贴同样的 “后”,以多组
我从这个数据我可以建立信任一个柱状图(10-20个用户组,包括21-30个用户,等等),并且在这些不同的箱子中包含组的平均帖子数量。
OP的查询使用略有不同的过滤:第二个查询中的'gp.Created @startDate和@ enddate'与第一个查询的'LastViewed between @startDate和@ enddate'之间。 “LastViewed”是“Group”列也不是一个确定的事实。 (是的,OP应该更清楚一点,但我们不应该假设太多,如果我们。) –
除此之外,我实际上同意你的方法。我可能会使用连接表中的实际ID和替代项的NULL,因此,我会计算COUNT而不是SUM,但基本上这与您的建议相同。 –