【问题标题】:Creating Customized MDX Named-Sets创建自定义的 MDX 命名集
【发布时间】:2014-02-13 15:51:36
【问题描述】:

我的多维数据集中有两个维度,分别称为 [Session Length][Date],以及一个名为 [Count - Logins] 的度量。 [Session Length] 维度包含一个名为[Session Length] 的属性,其成员是从0240 的整数。

我喜欢编写一个 MDX 查询,它将 [Count - Logins] 聚合到 [Session Length] 维度的自定义子集上(即,我想创建一个基于 [Session Length] 维度的自定义集,并将计数聚合到该维度的各个成员上)自定义设置)。这是我到目前为止提出的查询,但不幸的是我不知道如何前进:

WITH SET [Description] AS {
         [SessionLength].[Session Length].&[0], //Glimpse
         [SessionLength].[Session Length].&[1]:[SessionLength].[Session Length].&[5], //Short
         [SessionLength].[Session Length].&[6]:[SessionLength].[Session Length].&[30], //Medium
         [SessionLength].[Session Length].&[31]:[SessionLength].[Session Length].&[90], //Long
         [SessionLength].[Session Length].&[90]:[SessionLength].[Session Length].&[240]} //Extended
     MEMBER [SessionLength].[Session Length].SessionDescription AS
            Aggregate([Description])
     SELECT
     { [Measures].[Count - Logins] }
     ON COLUMNS,
    NONEMPTY({[SessionLength].[Session Length].SessionDescription} * {[Date].[Date].[Date]}) ON ROWS
FROM MyCube

使用以下示例结果集:

    Session Length   |    Date    | Count - Logins
   -------------------------------------------------
  SessionDescription | 2014-02-01 | 22
  SessionDescription | 2014-02-01 | 17

如您所见,计数是在整个集合中汇总的,而不是每个成员单独的。这是我希望产生的结果:

    Session Length   |    Date    | Count - Logins
   -------------------------------------------------
  Glimpse            | 2014-02-01 | 3
  Short              | 2014-02-01 | 4
  Medium             | 2014-02-01 | 9
  Long               | 2014-02-01 | 5
  Extended           | 2014-02-01 | 1
  Glimpse            | 2014-02-02 | 2
  Short              | 2014-02-02 | 5
  Medium             | 2014-02-02 | 7
  Long               | 2014-02-02 | 2
  Extended           | 2014-02-02 | 1

任何帮助将不胜感激。我知道这可以通过修改 DSV 来实现,但我不想改变 Cube 的结构。

【问题讨论】:

    标签: ssas mdx


    【解决方案1】:

    如果您想在 e 行上看到单独的条目,您必须创建单独的 SessionDescription 成员。 G。像这样:

    WITH
         MEMBER [SessionLength].[Session Length].Glimpse AS
                Aggregate([SessionLength].[Session Length].&[0])
         MEMBER [SessionLength].[Session Length].Short AS
                Aggregate([SessionLength].[Session Length].&[1]:[SessionLength].[Session Length].&[5])
         MEMBER [SessionLength].[Session Length].Medium AS
                Aggregate([SessionLength].[Session Length].&[6]:[SessionLength].[Session Length].&[30])
         MEMBER [SessionLength].[Session Length].Long AS
                Aggregate([SessionLength].[Session Length].&[31]:[SessionLength].[Session Length].&[90])
         MEMBER [SessionLength].[Session Length].Extended AS
                Aggregate([SessionLength].[Session Length].&[90]:[SessionLength].[Session Length].&[240])
         SELECT
         { [Measures].[Count - Logins] }
         ON COLUMNS,
        NONEMPTY({
                 [SessionLength].[Session Length].Glimpse,
                 [SessionLength].[Session Length].Short,
                 [SessionLength].[Session Length].Medium,
                 [SessionLength].[Session Length].Long,
                 [SessionLength].[Session Length].Extended
                 }
                 * {[Date].[Date].[Date]})
        ON ROWS
    FROM MyCube
    

    顺便说一句,我在 LongExtended 中都留下了 90 成员,就像在您的原始查询中一样。如果您不想重复计算这些,则应将它们从一个中删除。

    【讨论】:

      猜你喜欢
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 2020-10-30
      • 2011-09-27
      • 2011-10-22
      • 2015-12-30
      • 2018-07-29
      相关资源
      最近更新 更多