首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每周汇总表,如何引用时间维度

每周汇总表,如何引用时间维度
EN

Stack Overflow用户
提问于 2010-09-17 07:51:36
回答 4查看 1.4K关注 0票数 3

我们正在考虑在我们的小数据仓库中添加每周一次的汇总表。我们有一个典型的时间维度,可以精确到每天(年/月/日),并有相应的周/季度/等列。

我们希望这个新的每周汇总表中的时间键引用我们的时间维度。这里的最佳实践是什么-让时间键引用它所代表的一周中第一天的id?还是最后一天?或者是完全不同的东西?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-20 21:13:14

一个更早的答案我实际上希望存储与时间维度层次结构的中间级别相关的数据-当它与该中间时间段的原子度量相关时-通过附加到与周期的第一天相关的键-这使得在加载(特别是几个月-我猜星期可能总是需要一些计算)和报告时变得更加简单-尽管这是一个约定,只要你选择一个常识选项(并坚持它),你就会很好。

顺便说一句,不要创建周维度-你应该使用一个丰富的时间维度,其中包含了年、季度、月、周、日等的所有层次结构(请记住,通常有多个独占的层次结构),在这种情况下,只建议使用20100920格式的无意义的代理键-日期是不可变的,并且这种格式可以很容易地包含为整型列,因此对日期(或dim_time )使用无意义的键几乎没有价值-如果你曾经不得不编写查询来解引用数据,其中将无意义的SKs用于时间维度,你知道(不必要的)痛苦……

票数 -1
EN

Stack Overflow用户

发布于 2010-09-17 19:37:30

按照惯例,带有日期段聚合的事实表(周、月……)引用该期间最后一天的DateKey --因此,在本例中,您将引用一周的最后一天。

这也是一种逻辑,一周必须结束才能聚合。

重要的是要(在某个地方)清楚地说明事实表的粒度是一周的,这样报表设计人员就会意识到这一点。

票数 1
EN

Stack Overflow用户

发布于 2010-09-17 08:01:17

天是一个很好的例子,它是由自然关键字标识的实体-它们在公历中的表示形式。

要识别一个星期或一个月,最好使用它的第一天。在Oracle中,您可以通过调用TRUNC轻松地检索它

代码语言:javascript
复制
SELECT  TRUNC(fact_date, 'month'), SUM(fact_value)
FROM    fact
GROUP BY
        TRUNC(fact_date, 'month')

在其他系统中,它稍微复杂一点,但也相当简单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3731739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档