【问题标题】:MDX SSAS Rank rownumber functionMDX SSAS Rank 行号函数
【发布时间】:2017-04-17 19:53:48
【问题描述】:

我有一个来自 T-SQL 查询的现有 SSRS 报告,我正在尝试使用 SSAS 多维数据集上的 MDX 查询重新创建它。我坚持将 Row num 和 rank 逻辑重写为 MDX。

写成:

SELECT ceil((ROW_NUMBER() OVER (PARTITION BY PRODUCT ORDER BY YEARMONTH))/12)

在 SQL 中排名 1。有人可以告诉我这是否可以使用 MDX 完成?在多维数据集中,PRODUCT 和 YEARMONTH 来自不同的维度。

感谢您的帮助!

【问题讨论】:

  • 谢谢。我能够获得每条记录的排名函数,但我需要在产品的前 12 年显示相同的数字。你能建议我怎么做吗?

标签: ssas mdx rank partition


【解决方案1】:

有 Rank() 函数。例如:

with
Dynamic Set OrderedSet as
Order(
    NonEmptyCrossJoin(
       [Date].[Year].[Year].Members,
       [Product].[Product].[Product].Members,
       [Measures].[Invoice Count],
       2
    ),
    [Measures].[Invoice Count],
    BDESC
)

Member [Measures].[Rank] as
Rank(
        ([Client].[Client].Currentmember,[Date].[Year].CurrentMember),
        OrderedSet
)

select {[Measures].[Invoice Count],[Measures].[Rank]} on 0,
non empty OrderedSet on 1
from [BI Fake]
where ([Date].[Day].&[20160120])

您可以从我的blog post 阅读有关它的详细信息。

【讨论】:

  • 谢谢。我能够获得每条记录的排名函数,但我需要在产品的前 12 年显示相同的数字。你能建议我怎么做吗?
  • 你能发布一个希望的输出吗?
【解决方案2】:

您可以像这样使用 Generate 来重复排名:

WITH 
  SET [SalesRank] AS 
    Generate
    (
      [Customer].[Customer Geography].[State-Province]
     ,Order
      (
        NonEmpty
        (
          (
            [Customer].[Customer Geography].CurrentMember
           ,[Product].[Product Categories].[Subcategory]
          )
         ,{[Measures].[Internet Sales Amount]}
        )
       ,[Measures].[Internet Sales Amount]
       ,BDESC
      )
    ) 
  MEMBER [Measures].[CategoryRank] AS 
    Rank
    (
      (
        [Customer].[Customer Geography].CurrentMember
       ,[Product].[Product Categories].CurrentMember
      )
     ,Exists
      (
        [SalesRank]
       ,[Product].[Product Categories].CurrentMember
      )
    ) 
SELECT 
  {
    [Measures].[Internet Sales Amount]
   ,[Measures].[CategoryRank]
  } ON 0
 ,[SalesRank] ON 1
FROM [Adventure Works];

结果如下:

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多