Sql 根据15分钟和1小时间隔的原始数据计算公式的基本BI问题?

Sql 根据15分钟和1小时间隔的原始数据计算公式的基本BI问题?,sql,tsql,ssas,business-intelligence,bids,Sql,Tsql,Ssas,Business Intelligence,Bids,我是BI新手,我正在从事一个项目,我相信这个项目可以帮助我获得使用这项技术的经验。我现在研究的公式是最简单的 我们有15分钟的数据,有大量的计数器。我目前正在一个名为[Counter15MinityDataRaw]的表中存储,如下所示: Id City Date Hour Minute KpiValue Counters InsertDate 108823 Miami 20140930 9 0 100.

我是BI新手,我正在从事一个项目,我相信这个项目可以帮助我获得使用这项技术的经验。我现在研究的公式是最简单的

我们有15分钟的数据,有大量的计数器。我目前正在一个名为[Counter15MinityDataRaw]的表中存储,如下所示:

Id      City    Date        Hour    Minute  KpiValue    Counters        InsertDate
108823  Miami   20140930    9       0       100.00      Auto            2014-09-30 12:17:07.580    
108824  NYC     20140930    9       0       0.50        Added           2014-09-30 12:17:07.580    
108825  Vegas   20140930    9       0       12.00       Att             2014-09-30 12:17:07.580    
108826  Miami   20140930    9       0       40.00       Man             2014-09-30 12:17:07.580    
108823  Miami   20140930    9       15      100.00      Auto            2014-09-30 12:17:07.580    
108824  NYC     20140930    9       15      0.50        Added           2014-09-30 12:17:07.580    
108825  Vegas   20140930    9       15      12.00       Att             2014-09-30 12:17:07.580    
108826  Miami   20140930    9       15      40.00       Man             2014-09-30 12:17:07.580    
这是原始数据。我要研究的第一个公式是[TotalPopulation],它看起来是这样的:[TotalPopulation]=Q+Auto+Man/400。Q等于正在处理的四分之一的数量,即15分钟间隔Q=1,1小时间隔Q=4

因此,我的首要要求是创建一个报告,以15分钟和1小时的间隔显示每个城市的[总人口]

所以我已经创建了[DimDate]和[DimCity]两个表,尽管我认为它们在计算15分钟间隔和1小时间隔时不会有帮助。此外,我是否可以使用事实表的原始数据,或者我是否需要按城市和计数器将数据分组(在本例中为自动和人工)到一个新的事实表中


所以我的问题是:我需要15分钟和1小时间隔的维度表吗?我的事实表会是什么样子?我还需要Q变量的dim表吗?

是的,您可以创建一个维度间隔,只包含两个值15,0。将此维度链接到Facttable分钟字段


使用维度在前端筛选结果。

对日期和间隔使用单独的维度表。如果包含时间间隔,甚至15分钟的时间间隔,则日期维度将变得太大

不要聚合事实表中的数据,始终使用粒度数据以满足所有分析需求:您始终可以聚合粒度数据,但反之则不正确。然后,您可以使用聚合来提高性能,或者使用OLAP聚合

最后,我认为不应该对Q使用dim,因为Q指的是区间值的不同聚合级别,所以您将以事实表中具有不同聚合级别的行结束。在事实表中混合不同的粒度是一种非常糟糕的做法,因为报表开发人员在请求数据时容易出错,而且数据很快就会变得难以维护

这些确实是经典的BI问题,并在Kimball的书籍或论文中有深入的记录