0

如何使用最高计数,使其仅返回每个销售区域组(北美、太平洋等)销售额最高的前 2 条记录

WITH 
   MEMBER [Measures].[Group_Ranking_InternetSales] AS
   RANK( [Sales Territory].[Sales Territory Group].CurrentMember,
   ORDER( [Sales Territory].[Sales Territory Group].[Sales Territory Group].Members , [Measures].[Internet Sales Amount], BDESC)
   ) 

   MEMBER [Measures].[Group_Territory_Ranking_InternetSales] AS
   RANK(( [Sales Territory].[Sales Territory Group].CurrentMember,   [Sales Territory].[Sales Territory Country].CurrentMember),
   ORDER( CROSSJOIN([Sales Territory].[Sales Territory Group].CurrentMember,  [Sales Territory].[Sales Territory Country].[Sales Territory Country]) , [Measures].[Internet Sales Amount], BDESC)
   ) 
SELECT 
      {
   [Measures].[Group_Ranking_InternetSales]
   ,[Measures].[Group_Territory_Ranking_InternetSales] 
   , [Measures].[Internet Sales Amount]
      } ON COLUMNS,
   (
           ORDER  ([Sales Territory].[Sales Territory Group].[Sales Territory Group], [Measures].[Group_Ranking_InternetSales] , BASC ) 
   ,ORDER  ([Sales Territory].[Sales Territory Country].[Sales Territory Country], [Measures].[Group_Territory_Ranking_InternetSales] , BASC ) 
   )
   ON ROWS 
FROM
      [Adventure Works]

最终结果应该是它删除了下面突出显示的行。

在此处输入图像描述

4

1 回答 1

0

现在试试

                WITH 
            MEMBER [Measures].[Group_Ranking_InternetSales] AS
            RANK( [Sales Territory].[Sales Territory Group].CurrentMember,
            ORDER( [Sales Territory].[Sales Territory Group].[Sales Territory Group].Members , [Measures].[Internet Sales Amount], BDESC)
            ) 

            MEMBER [Measures].[Group_Territory_Ranking_InternetSales] AS
            RANK(( [Sales Territory].[Sales Territory Group].CurrentMember,   [Sales Territory].[Sales Territory Country].CurrentMember),
            ORDER( CROSSJOIN([Sales Territory].[Sales Territory Group].CurrentMember,  [Sales Territory].[Sales Territory Country].[Sales Territory Country]) , [Measures].[Internet Sales Amount], BDESC)
            ) 
            SELECT 
            {
            [Measures].[Group_Ranking_InternetSales]
            ,[Measures].[Group_Territory_Ranking_InternetSales] 
            , [Measures].[Internet Sales Amount]
            } ON COLUMNS,
            filter(///Added this
            (
            ORDER  ([Sales Territory].[Sales Territory Group].[Sales Territory Group], [Measures].[Group_Ranking_InternetSales] , BASC ) 
            ,ORDER  ([Sales Territory].[Sales Territory Country].[Sales Territory Country], [Measures].[Group_Territory_Ranking_InternetSales] , BASC ) 
            )
            ,[Measures].[Group_Territory_Ranking_InternetSales]<3) ///Added this
            ON ROWS 
            FROM
            [Adventure Works]
于 2018-11-22T20:45:56.113 回答