首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DAX - RANK函数

DAX - RANK函数
EN

Stack Overflow用户
提问于 2017-01-23 19:07:09
回答 2查看 417关注 0票数 0

我有一个排名代码从网络基础设施,并需要写一个类似的DAX或MDX.Both可以工作。但DAX会更有用。

代码语言:javascript
复制
=Rank([OrderCount];([Category1];[Category2];[Category3])) 

我已经在DAX中尝试了下面的代码,但它不是我需要的。

代码语言:javascript
复制
=RANK.EQ(table1[OrderCount];table1[OrderCount])

你能帮我写出类似的东西吗?

Grouping by Count. This is extra.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-23 19:57:16

我不太擅长DAX,但MDX的方式如下:

代码语言:javascript
复制
with
Dynamic Set OrderedSet as
Order(
    NonEmptyCrossJoin(
        [Dim Product].[Subcategory Name].[Subcategory Name].Members,
        [Dim Product].[Category Name].[Category Name].Members
        [Measures].[Order Quantity],
        2
    ),
    [Measures].[Order Quantity],
    BDESC
)

Member [Measures].[Rank] as
Rank(

        ([Dim Product].[Subcategory Name].Currentmember, 
        [Dim Product].[Category Name].Currentmember),
        OrderedSet
)

select 
{[Measures].[Order Quantity],[Measures].[Rank]} on 0,
non empty OrderedSet on 1
from 
[Adventure Works DW2016CTP3]

DenseRank:

代码语言:javascript
复制
with
Dynamic Set OrderedSet as
Order(
    NonEmptyCrossJoin(
      [Dim Product].[Subcategory Name].[Subcategory Name].Members,
      [Dim Product].[Category Name].[Category Name].Members,
      [Measures].[Order Quantity],
       2
    ),
    [Measures].[Order Quantity],
    BDESC
)

Dynamic Set DenseOrderedSet as
Order(
    NonEmpty(
       OrderedSet,
       [Measures].[RankFirstMatch]
    ),
    [Measures].[Order Quantity],
    BDESC
)

Member [Measures].[Rank] as
Rank(
  ([Dim Product].[Subcategory Name].Currentmember,[Dim Product].[Category Name].CurrentMember),
  OrderedSet
)

Member [Measures].[RankFirstMatch] as
IIF(
    [Measures].[Order Quantity] 
    =
    (
        OrderedSet.Item([Measures].[Rank] -2),
        [Measures].[Order Quantity]
    ),
    NULL,
    [Measures].[Rank]
)

Member [Measures].[RankDenseSet] as
Rank(
  ([Dim Product].[Subcategory Name].Currentmember,[Dim Product].[Category Name].CurrentMember),
  DenseOrderedSet
)


Member [Measures].[DenseRank] as
IIF(
    [Measures].[RankDenseSet] = 0,
    (OrderedSet.Item([Measures].[Rank] -2),[Measures].[DenseRank]),
    [Measures].[RankDenseSet]
)


select {[Measures].[Order Quantity],[Measures].[Rank],[Measures].[RankFirstMatch],[Measures].[RankDenseSet],[Measures].[DenseRank]} on 0,
non empty OrderedSet on 1
from [Adventure Works DW2016CTP3]
票数 1
EN

Stack Overflow用户

发布于 2018-03-22 11:34:53

以下是您问题的DAX度量:

代码语言:javascript
复制
Rank =
IF (
    HASONEVALUE ( YourTableName[ProductName] ),
    RANKX (
        ALL ( YourTableName ),
        CALCULATE ( SUM ( YourTableName[Order Quantity] ) ),
        ,
        ,
        DENSE
    )
)

IF (HASONEVALUE ( YourTableNameProductName )....部件将从显示%1中删除您的总计

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41804905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档