聚合事实表创建问题

时间:2015-03-04 21:52:56

标签: sql-server

我被困在一个创建agg表的地方。

我的事实表有以下字段 - 位置键,Dekade键和数据 我的位置昏暗表如下 - 位置键,代码,子区域

我为dekade键和位置键分组的数据的平均值创建了一个聚合事实表,所以我的聚合事实表看起来像这样 - 这是具有Dekade键和位置键的数据的总和。

Location Key----Dekade Key----Data (sum aggr) 
2----------2688-------200 
3----------2688-------300 
4----------2688-------400 

但问题是,我需要将上述数据平均为3,因为该子区域的位置键数量实际上只有3个。它应该是(200 + 300 + 400)/ 3。我的位置昏暗有四个键 -

Location Key----Code----Subregion 
1----------1234------Wisconsin 
2----------5876-------Wisconsin 
3----------3398-------Wisconsin 
4----------2978-------Wisconsin 

由于位置键= 1且代码= 1234,未报告任何数据,因此它不会出现在事实表中。如果它出现(已报告数据),那么我们必须将事实表中的数据平均4,以创建聚合表。 这该怎么做?我是否需要在FACT或DIM表中进行任何修改?

如果我使用dim表进行事实表的外连接,结果将是这样的 -

Location Key----Code----Subregion---Location_Key_Dim
Null----------Null------Null-----------1 
2----------5876-------Wisconsin--------2 
3----------3398-------Wisconsin--------3 
4----------2978-------Wisconsin--------4

Location_Key_Dim是外连接后Dim表中的关键值。

预期结果应为 次区域----总结 威斯康星州-----(200 + 300 + 400)/ 3

1 个答案:

答案 0 :(得分:0)

您需要使用维度表的OUTER JOIN事实表来包含没有事实的维度。汇总结果取决于您使用的汇总。

相关问题