在多行上选择不同计数的最大值

selecting max of distinct count when on multiple rows

我有一个查询根据 CB 分数对帐户进行不同计数。我遇到的问题是一个帐户可以经常切换信用评分。所以我想获取特定帐户的最高信用评分。 由于 CB 分数的切换,这是我所拥有的回报高于我想要的。

因此,例如帐户 1234 最初的 cb 分数为 500,后来的 cb 分数为 550。帐户 1234 现在在两个 cb 分数范围内,但我只想计算一次。

WITH 
  MEMBER mem1 AS 
    Count
    (
      NonEmpty
      (
        [AccountID].[Account ID].[Account ID].MEMBERS
       ,measures.[Transaction Amount]
      )
    ) 
SELECT 
  NON EMPTY 
    {mem1} ON 0
 ,[CB Score].[RANGE].[RANGE] ON 1
FROM [CUBE]
WHERE [PROMO].[PROMO].&24

试试这个:

WITH 
  MEMBER mem1 AS 
    Sum
    (
        [AccountID].[Account ID].[Account ID].MEMBERS
       ,IIF(
         Not IsEmpty([Measures].[Transaction Amount]) 
         And IsEmpty(Sum({[CB Score].[RANGE].CurrentMember.NextMember : null}, [Measures].[Transaction Amount])),
         1,
         Null
      )
    ) 
SELECT 
  NON EMPTY 
    {mem1} ON 0
 ,[CB Score].[RANGE].[RANGE] ON 1
FROM [CUBE]
WHERE [PROMO].[PROMO].&24

基本上逻辑是,如果他们在该切片中有交易并且没有更大的 CB 分数范围有交易,则计算帐户。