"count" 度量是否应存储在事实 table 中?
Should the "count" measure be stored in the fact table?
我有一个事实 table,其中包括 "wait times in hours" 某些服务。我有很多维度可以描述基于不同切片的等待时间;但是,我也很想知道有多少人(计数)通过相同维度的过滤器前来寻求服务。
考虑到以小时为单位的等待时间和获得服务的人数的维度完全相同,我认为最好的做法是保持相同的事实 table。我的问题是:
- 提到的计数度量是否应该有不同的事实table?
- 我将如何包括这项措施?我是否只在每一行中放 1?因为无论等待时间如何,他们只获得了一次服务(在我的情况下你不能去 above/below 1)。
1) 考虑现有事实的粒度 table。听起来可能 "an occasion on which a person received a service." 如果这与您要计算的是同一件事,那么是的 - 等待时间和计数是相同的。
然而,虽然它们可能是同一种谷物,但可能不需要向 table 添加任何内容。阅读第 2 点以获得解释。
2) 你可以在每一行的列中放一个 1,但我不确定你会从中得到什么。您没有说什么工具将使用这些数据,但您应该能够进行某种 count/distinct 计数。
基于您已标记 SSIS,因此很可能使用 Microsoft 的 BI 堆栈:
- TSQL 有
count()
,你可以做到 count(distinct [column])
。
- SSAS 将计数和非重复计数作为聚合类型。
- MDX 提供了几种不同类型的计数。
- SSRS 有 Count、CountDistinct 和 CountRows。
您是进行正常计数还是非重复计数取决于您要询问的是 "How many people used this service?" 还是 "How many different people used this service?"
我有一个事实 table,其中包括 "wait times in hours" 某些服务。我有很多维度可以描述基于不同切片的等待时间;但是,我也很想知道有多少人(计数)通过相同维度的过滤器前来寻求服务。
考虑到以小时为单位的等待时间和获得服务的人数的维度完全相同,我认为最好的做法是保持相同的事实 table。我的问题是:
- 提到的计数度量是否应该有不同的事实table?
- 我将如何包括这项措施?我是否只在每一行中放 1?因为无论等待时间如何,他们只获得了一次服务(在我的情况下你不能去 above/below 1)。
1) 考虑现有事实的粒度 table。听起来可能 "an occasion on which a person received a service." 如果这与您要计算的是同一件事,那么是的 - 等待时间和计数是相同的。
然而,虽然它们可能是同一种谷物,但可能不需要向 table 添加任何内容。阅读第 2 点以获得解释。
2) 你可以在每一行的列中放一个 1,但我不确定你会从中得到什么。您没有说什么工具将使用这些数据,但您应该能够进行某种 count/distinct 计数。
基于您已标记 SSIS,因此很可能使用 Microsoft 的 BI 堆栈:
- TSQL 有
count()
,你可以做到count(distinct [column])
。 - SSAS 将计数和非重复计数作为聚合类型。
- MDX 提供了几种不同类型的计数。
- SSRS 有 Count、CountDistinct 和 CountRows。
您是进行正常计数还是非重复计数取决于您要询问的是 "How many people used this service?" 还是 "How many different people used this service?"