我們有一個允許用戶創建自己的組的工具。在這些組中,用戶可以撰寫帖子。我試圖確定的是小組的規模與該小組的職位總數之間的關係。同一查詢中不同表格上的多次計數
我可以通過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,但基本上這與您的建議相同。 –