0

我刚刚开始涉足数据仓库,我有一个问题我似乎无法弄清楚。

我有一家公司,有十家商店,每家都有一定的员工。在我的数据仓库中,我有一个代表商店的维度。员工维度是一个 SCD,具有开始/结束列,以及员工所在的商店。

我的事实表是基于员工(匿名)给商店经理的建议。此表包含建议类型(清洁度、工资问题等)、提交日期(时间维度表的外键)以及提交的商店。

我想做的是创建一个报告,显示给定年份的建议数量与员工数量的比率。因为员工人数会定期变化,所以我无法简单查询员工总数。

不幸的是,我在网上搜索了很多试图找到解决方案,但大多数示例都是基于零售的销售,这与我正在尝试做的不同。

任何帮助,将不胜感激。我确实在我的机器上安装了 AdventureWorksDW,因此如果有人提出使用它的建议,我可以将其用作参考点。

提前致谢!

4

2 回答 2

1

缓慢变化的维度应该有一个自然的键来识别行的来源(否则它怎么知道要比较什么来检测变化)。这在维度的所有迭代中应该是恒定的。您可以通过计算自然键的不同计数来获得员工数量。

编辑:如果您的交易表(建议)上有一个日期,则由建议日期的计算函数(例如datepart (yy, s.SuggestionDate))和业务部门分组的员工的不同计数应该这样做。您无需担心员工维度上的日期,因为适用的行应该直接连接到事务表。

于 2009-06-15T14:50:45.647 回答
0

为每个月的每个商店中的员工人数添加另一个事实表——您可以使用该月的最大人数。然后是一年的平均月数,将其用作“一年中的员工人数”。

在每个月底加载您的新事实表。新表如下所示:

事实表:EmployeeCount

KeyEmployeeCount int -- 代理键

KeyDate int -- FK 到日期维度,指向一个月的最后一天

KeyStore int -- 存储维度的 FK

NumberOfEmployes int -- 给定商店当月的(最大)员工人数

如果您需要更精细的分辨率,请使用“每周”甚至“每天”。主要思想是平均一年中给定商店的 NumberOfEmployes 度量。

于 2009-10-27T14:07:46.067 回答