MDX持续时间和时间

时间:2012-01-29 11:48:18

标签: mdx data-warehouse

我正在创建一个数据仓库来存储用户会话数据。我当前的星型模式如下所示:

session_fact

  • SESSION_ID
  • USER_ID
  • session_duration
  • date_id(ref date_dimension)
  • time_if_day_id(ref time_of_day_dimension)

date_dimension

  • DATE_ID
  • 季度
  • date_of_month

time_of_day_dimension

  • time_of_day_id
  • HOUR_OF_DAY
  • MINUTE_OF_HOUR

会话事实将使用会话的开始时间链接到日期维度的日期和时间。

问题: 我想创建一个MDX查询,返回一天中每小时的“活动”会话。 例如。有一天我们可以参加这些会议:

session id |start time |duration
session 1  |10am       |1hr
session 2  |10am       |2hr

我想以这种形式检索数据:

time of day |active session count
10am        |2
11am        |1

有什么想法吗?我非常乐意根据建议对模式进行重组,我只是不知道该怎么做。

感谢您阅读本文。

Pat

1 个答案:

答案 0 :(得分:0)

如果您拥有必要的硬件资源(磁盘空间),则可以通过创建定期快照事实表轻松解决问题。谷物将按小时计算,因此您将获得每小时活跃的会话记录。这将极大地简化查询以按小时拉动活动会话...

SELECT
   [Measures].[Active Session Count] ON 0,
   (
      [Date].[Date].[Date].Members *
      [Time].[Hour].[Hour].Members 
   ) ON 1
FROM 
   [Cube]