所以我有两张桌子;
连接在一起时(ID 上的 OUTER JOIN)看起来像这样
现在,我想创建一个统计所有事件及其对应位置的查询。鉴于上面的例子,它应该是这样的;
关键是 COUNT(事件)需要在比 COUNT(位置)更高的级别聚合。即计数(事件)是该事件整个月的总计数。计数(位置)就是事件计数,分为它们的相关位置。
我无法让我的查询在比位置更高的级别聚合计数事件。
很高兴提供更多细节
谢谢
所以我有两张桌子;
连接在一起时(ID 上的 OUTER JOIN)看起来像这样
现在,我想创建一个统计所有事件及其对应位置的查询。鉴于上面的例子,它应该是这样的;
关键是 COUNT(事件)需要在比 COUNT(位置)更高的级别聚合。即计数(事件)是该事件整个月的总计数。计数(位置)就是事件计数,分为它们的相关位置。
我无法让我的查询在比位置更高的级别聚合计数事件。
很高兴提供更多细节
谢谢
您可以使用窗口函数来实现此目的:
select
t1.Month,
t1.Event,
t2.Location,
count (*)
over (partition by t1.Event) as EventCount,
count (*)
over (partition by t1.Event, t2.Location) as LocationCount
from Table1 t1
left join Table2 t2
on t1.Id = t2.Id
SQLFiddle: http ://sqlfiddle.com/#!6/b55b3/8