2事实表和企业希望了解一个事实与另一个事实的百分比



我们的仓库里有两个事实表
案例事实和偶发事件事实。两者都有迄今为止的维度连接和其他各种项目

在我们的OLTP中,这两个表作为一个案例的每个偶发事件而相关。因此,一个案例可能有多个偶发事件。

OLTP表结构

  • 案例表CaseId(主键(
  • 地址
  • 等等

事件表

  • IncidentId(主要(
  • CaseId(案例表的外键(
  • IncidentType
  • 等等

事件的情况为1:n

问题是:企业想要知道IncidentType为"0"的总病例的百分比;X〃;

在我们的仓库里,如果我们不将一个事实表连接到另一个,我不确定处理这个问题的最佳方法是什么。

我需要的基本数据:

  1. 日期时间范围需要不同的CaseId和IncidentType
  2. 然后需要事件类型计数(分子(
  3. 则需要相同时间范围内的病例数(分母(
  4. 然后可以按州、地区、部门等其他任何单位分组

如果基本上需要来自不同数据集市的2个数据点,则不确定该如何处理仓库结构。

这是数据仓库的标准模式:正确的方法(在大多数情况下(是在两个单独的查询中检索数据,将两个结果集连接在一起(使用通用、一致的维度(,然后查询这个组合的结果集以获得最终答案。

对于您的具体示例,我建议:

查询1:根据任何所需维度值对事件表中不同的CaseId进行计数

查询2:从偶发事件表中计数IncidentId,其中IncidentType=";X〃;按任何所需的维度值分组(如果一个案例可能有多个相同类型的事件,以及您希望在计算中如何处理,则可能需要额外的逻辑(。这些分组值需要与查询1中的值相匹配。

查询3:按常用的"查询1"结果与查询2结果连接;分组依据";字段,并将一个计数除以另一个计数以获得百分比

在SQL中如何写这篇文章取决于您的DBMS,但在大多数情况下,使用CTE可能是最简单的解决方案

相关内容

最新更新