我必须在olap cube中计算/显示团队低谷年数
我的团队事实是这样构建的:
TeamId DateFrom DateTo (FactTeams)
1 2012 2015
2 2012 2015
3 2012 2015
4 2015 2018
1 2018 2019
多维数据集必须能够回答,例如,2012年有多少球队活跃(3支球队)
我准备了另一个辅助事实表,其中包含团队ID和日期的所有组合。
TeamId DateRange (FactTeamDates)
1 2012
1 2013
1 2014
1 2015
1 2018
1 2019
2 2012
2 2013
2 2014
2 2015
...and so on ...
我创建了两个事实,一个是FactTeams,另一个是FactTeamDates。我还有标准日期维度。这是我的数据源视图:
https://www.dropbox.com/s/5d2gzumxv5fejdq/teams.jpg
FactTeams.TeamId链接到FactTeamDates.TeamId,FactTeamDates.DateRange链接到DimDates.DateKey。
我测量了“团队编号”,这是TeamId列上FactCams的独特数量。 我所需的MDX查询输出用于测量COLUMNS上的团队编号和行数年份:
Team Number
Year 2012 3
Year 2013 3
Year 2014 3
Year 2015 4
我的问题:如何组织我的事实并在我的多维数据集中设置维度用法以获得所需的输出?
产生所需输出的SQL查询:
SELECT
d.CalendarYear
,COUNT(DISTINCT TeamId)
FROM FactTeams zt
INNER JOIN FactTeamsDates td ON zt.TeamId = td.TeamId
INNER JOIN DimDates d ON d.DateKey = td.DateRange
GROUP BY d.CalendarYear ORDER BY 1
请注意,我知道我可以基于上面的sql查询(使用连接)创建数据视图,然后有一个连接的事实表,但我希望在我的多维数据集维度和事实之间有某种连接 - 要有连接仅在多维数据集(olap)级别,而不是在sql(数据库或多维数据集数据视图)中
提前致谢
答案 0 :(得分:0)
您可以创建一个独特的计数度量,这应该可以解决您的问题