-1

所以我有两张桌子;

在此处输入图像描述 在此处输入图像描述

连接在一起时(ID 上的 OUTER JOIN)看起来像这样

在此处输入图像描述

现在,我想创建一个统计所有事件及其对应位置的查询。鉴于上面的例子,它应该是这样的;

在此处输入图像描述

关键是 COUNT(事件)需要在比 COUNT(位置)更高的级别聚合。即计数(事件)是该事件整个月的总计数。计数(位置)就是事件计数,分为它们的相关位置。

我无法让我的查询在比位置更高的级别聚合计数事件。

很高兴提供更多细节

谢谢

4

1 回答 1

0

您可以使用窗口函数来实现此目的:

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

于 2018-01-10T13:09:07.987 回答