首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事实表设计-如何捕捉数据开始日期之前的事实

事实表设计-如何捕捉数据开始日期之前的事实
EN

Stack Overflow用户
提问于 2017-02-14 10:21:13
回答 1查看 49关注 0票数 0

我们有一个事实表,它收集员工选择福利时的详细信息。我们试图解决的问题是如何计算所有员工选择的总福利。

我们确实有一个BenefitSelectedOnDay标志,通常,我们可以对它做一个求和来获得一个结果,但是这只适用于福利选择,因为我们开始加载数据。

例如:

  • 假设Client#1自2016年10月以来一直在使用我们的分析工具。我们在平台上有4个月的数据。
  • 当数据在10月份加载时,福利源数据将显示:
    1. Employee#1于2016年4月4日选择了一项福利。
    2. Employee#2于2016年10月3日选择了一项福利

为BenefitSelectedOnDay设置Employee#2标志是非常直接的。

问题是如何处理Employee#1,因为我们不能在事实表中的客户端不存在的一天设置一个标志。1号客户的数据将于2016年10月1日开始。

在某些情况下,计算福利选择是有问题的。如果我们按日期过滤报告,只查看2016年Q4中的福利选择,我们就没有问题。但是,如果我们想要一个全面的福利选择,我们有一个问题,因为我们没有为Employee#1设置一个标志,因为选择日期在客户1的数据集范围之前(2016年10月1日至2017年1月31日)。

EN

回答 1

Stack Overflow用户

发布于 2017-02-16 09:19:21

在您的场景中,有两种方法似乎是合乎逻辑的:

  1. 加载一些历史数据,追溯到仍然与当前报告相关的第一个福利选择日期。虽然这可能需要一些工作和额外的空间,这可能是您唯一的解决方案,如果员工有资格享受不同的福利,根据福利已经活跃了多久。
  2. 添加连接日期之前一天的记录(本例中为9月30日),并将在客户端连接日期(10月1日)之前选定并在客户端联接日期(10月1日)上活动的所有福利标记为在该日期选定。它们将不属于10月份的报告窗口,但会包含无限制的查询。如果好处是二进制开/关的事情,这应该工作得很好。

就我个人而言,除非存储要求是荒谬的,否则我会选择选项1。即使这样,您也只能将标记的记录加载到事实表中。您的客户可能会感到困惑,如果他能够选择一个期间之前的加入日期,并得到破碎的数据,但你可以解释/证明这一点。

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

https://stackoverflow.com/questions/42223518

复制
相关文章

相似问题

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