根据字母顺序将RANK函数应用于集合 [英] Apply RANK function to a set according to alphabetical order

查看:57
本文介绍了根据字母顺序将RANK函数应用于集合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有可能创建一种度量,以根据字母的字母顺序生成集合的排名,即Aleen应该为1....Zebedie应该排名为101(集合有101个项目)

Is it possible to create a measure that produces the rank of a set according to their alphabetical order i.e. Aleen should be 1 .... Zebedie should be ranked 101 (set has 101 items)

这不起作用:

MEMBER [Measures].[Alphabetic_Rank] AS 
    RANK(
        [CustomerName].CurrentMember,
        ORDER(
            [CustomerName],
            [CustomerName],
            ASC
            )
        )


编辑

尝试应用此操作的另一个示例如下:

A further example of trying to apply this is the following which also does not work:

WITH 
SET [orderedSet] AS
    ORDER(
    [Operator].members,
    [Operator].currentmember.name,
    BASC
    )
MEMBER [Measures].[newMeasure] AS
    RANK(
    [orderedSet].currentmember, 
    [orderedSet].members
    )
SELECT
   {} ON COLUMNS,
   [orderedSet] 
   * 
   [Measures].[newMeasure] ON ROWS
FROM [ourCube]

推荐答案

如何使用NAME作为订单的数值:

How about using the NAME as order's numerical value :

MEMBER [Measures].[Alphabetic_Rank] AS 
    RANK(
        [CustomerName].CurrentMember,
        ORDER(
            [CustomerName].members,
            [CustomerName].currentMember.NAME,
            BASC
            )
        )

第二部分的

WITH 
SET [orderedSet] AS
    ORDER(
    [Operator].members,
    [Operator].currentmember.name,
    BASC
    )
MEMBER [Measures].[newMeasure] AS
    RANK(
    [Operator].currentmember, 
    [orderedSet]
    )
SELECT
   [Measures].[newMeasure] ON COLUMNS,
   [orderedSet] ON ROWS
FROM [ourCube]

这篇关于根据字母顺序将RANK函数应用于集合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆