DAX RANKX: почему он возвращает 1? - PullRequest
0 голосов
/ 25 сентября 2018

Я использую базу данных AdventureWorks и хочу ранжировать посредников по их общей сумме продаж.Таким образом, в основном таблица выглядит так:

enter image description here

Я использовал следующую меру для ее ранжирования:

Rank Reseller = RANKX(ALL(ResellerSales), MAX(ResellerSales[SalesAmount]),,1)

Но она возвращает только 1 в качестве ранга.

enter image description here

Я следил за этими двумя видеофильмами:

https://www.youtube.com/watch?v=z2qzJVeYhTY

и

https://www.youtube.com/watch?v=SsZseKOgrWQ&t=603s

но я не могу понять, что не так!

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Это связано с текущей областью, которую Ранкс оценивает деагрегацией.

Попробуйте обернуть агрегацию с помощью CALCULATE, и вы, вероятно, захотите, чтобы СУММА не МАКСИМАЛА:

Rank Reseller = RANKX(ALL(ResellerSales), CALCULATE(SUM(ResellerSales[SalesAmount])))

Выможно создать Меру, подобную этой, и использовать ее в RANKX, так как это мера, она будет работать без явного добавления CALCULATE:

Sales Amount = SUM(ResellerSales[SalesAmount])

Rank Reseller = RANKX(ALL(ResellerSales), [Sales Amount])

РЕДАКТИРОВАТЬ:

Rank Reseller = RANKX(ALL('ResellerSales'[Resellerkey]), [Sales Amount])

Попробуйте какэто.

0 голосов
/ 25 сентября 2018

Чтобы присвоить [ReSellerkey] значение [SalesAmount], вам нужно сделать что-то вроде этого:

Rank Sales Amount := 
    RANKX(
        'Table',
        'Table'[SalesAmount],
        ,
        ASC,
        Dense
        )
...