我刚刚开始研究数据仓库,我有一个问题我似乎就是想不通。
我有一家公司,有十家商店,每个商店都有特定的员工。在我的数据仓库中,我有一个表示商店的维度。employee维是一个SCD,有一个用于开始/结束的列,以及员工正在工作的商店。
我的事实表是基于员工(匿名)给商店经理的建议。该表包含建议类型(整洁程度、工资问题等)、提交日期(时间维度表的外键)以及提交建议的商店。
我想要做的是创建一个报告,显示给定年份的建议数量与员工数量的比率。因为雇员的数量是周期性变化的,所以我不能对雇员总数进行简单的查询。
不幸的是,我在网上搜索了很多,试图找到一个解决方案,但大多数例子都是基于零售的销售,这与我试图做的事情不同。
任何帮助都将不胜感激。我确实在我的机器上安装了AdventureWorksDW,所以如果有人提出使用它的建议,我可以将其作为参考。
提前感谢!
发布于 2009-06-15 14:50:46
缓慢变化的维度应该有一个自然的键来标识行的源(否则它如何知道比较什么来检测更改)。这在维度的所有迭代中应该是恒定的。您可以通过计算自然键的不同计数来获得雇员的计数。
编辑:如果您的事务处理表(建议)上有日期,则按建议日期(例如datepart (yy, s.SuggestionDate))的计算函数分组的不同员工计数,业务部门应执行此操作。您不需要担心employee维度上的日期,因为适用的行应直接连接到transaction表。
发布于 2009-10-27 22:07:46
为每个商店每个月的员工数量添加另一个事实表--您可以使用该月的最大数量。然后是一年的平均月份,使用它作为“一年中的雇员数量”。
在每个月末加载新的事实数据表。新表将如下所示:
事实表: EmployeeCount
KeyEmployeeCount int --代理键
KeyDate int -- FK到日期维度,指向一个月的最后一天
KeyStore int --用于存储维度的FK
NumberOfEmployes int -- (最大)给定商店当月的员工数量
如果你需要更好的分辨率,可以使用“每周”甚至“每天”。其主要思想是对给定商店在一年中的NumberOfEmployes度量进行平均。
https://stackoverflow.com/questions/996484
复制相似问题