【问题标题】:RANKING Function in DAX or MDXDAX 或 MDX 中的 RANKING 函数
【发布时间】:2017-01-24 09:28:11
【问题描述】:

如何通过 DAX 或 MDX 获得附加图像的结果。两者都可以为我工作。 (我将在表格模型中使用 DAX,并在 SSRS 部分使用 MDX)。

示例格式

我尝试了下面的代码,但没有成功。

WITH 
  SET OrderSet AS 
    Order
    (
      (
        [Dim Product].[Category Name].[Category Name].MEMBERS
       ,[Dim Product].[Subcategory Name].[Subcategory Name].MEMBERS
       ,[Dim Product].[Sub Subcategory Name].[Sub Subcategory Name].MEMBERS
       ,[Dim Product].[Product Name].[Product Name].MEMBERS
      )
     ,[Measures].[Order Quantity]
     ,BDESC
    ) 
  MEMBER [Measures].[RankOrderCount] AS 
    Rank
    (
      (
        [Dim Product].[Category Name].CurrentMember
       ,[Dim Product].[Subcategory Name].CurrentMember
       ,[Dim Product].[Sub Subcategory Name].CurrentMember
       ,[Dim Product].[Product Name].CurrentMember
      )
     ,OrderSet
    ) 
SELECT 
  {
    [Measures].[Order Quantity]
   ,[Measures].[RankOrderCount]
  } ON 0
 ,NON EMPTY 
    {OrderSet} ON 1
FROM [Adventure Works DW2016CTP3];

【问题讨论】:

  • 您可以在 DAX 中轻松计算排名。你的桌子的结构是什么?
  • 你能通过上面的示例构建 dax 代码吗?
  • 样本数据是否包含Order Count 列?或者它是一个衡量标准?如果是这样,它是如何计算的?
  • 此样本来自标准 [Adventure Works]

标签: reporting-services mdx ssrs-tablix dax ssas-tabular


【解决方案1】:

我不明白这个问题。如果我运行这个:

WITH 
  SET OrderSet AS 
    Order
    (
      (
        [Product].[Category].[Category].MEMBERS
       ,[Product].[Subcategory].[Subcategory].MEMBERS
      )
     ,[Measures].[Order Quantity]
     ,BDESC
    ) 
  MEMBER [Measures].[RankOrderCount] AS 
    Rank
    (
      (
        [Product].[Category].CurrentMember
       ,[Product].[Subcategory].CurrentMember
      )
     ,OrderSet
    ) 
SELECT 
  {
    [Measures].[Order Quantity]
   ,[Measures].[RankOrderCount]
  } ON 0
 ,NON EMPTY 
    {OrderSet} ON 1
FROM [Adventure Works];

我明白了:

这看起来像您想要的输出格式 - 但我没有更改脚本 - 那么问题是什么?

【讨论】:

    【解决方案2】:

    例如:

    DEFINE
    VAR TableTMP1 =
        SELECTCOLUMNS (
            DimProductTable,
            "Product Name", DimProductTable[Product Name],
            "Sub Subcategory Name", RELATED ( SubSubcategoryTable[Sub Subcategory Name] ),
            "Subcategory Name", RELATED ( SubcategoryTable[Subcategory Name] ),
            "Category Name", RELATED ( CategoryTable[Category Name] )
        )
    VAR TableTMP2 =
        ADDCOLUMNS (
            TableTMP1,
            "Order Count", CALCULATE ( SUM ( OrderTable[Quantity] ) )
        )
    EVALUATE
        ADDCOLUMNS ( TableTMP2, "Rank", RANKX ( TableTMP2, [Order Count], ASC ) )
    ORDER BY [Rank] ASC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 2019-04-20
      相关资源
      最近更新 更多