1.Order(Set_Expression,Numberic_Expression[,{ASC|DESC|BASC|BDESC}])

Order函数既可以考虑层次结构(通过使用ASC或DESC标志来指定),也可以不考虑层次结构(通过使用BASC或BDESC标志来指定,其中B表示"打乱层次结构").如果指定了ASC或DESC,则Order函数先根据成员在层次结构中的位置进行排序,然后对每一级别进行排序.如果指定了BASC或BDESC,则Order函数排列集中的所有成员时不考虑层次结构.如果未指定任何标志,则默认为"ASC"

如果Order函数用于其两个或多个层次结构执行叉积的集合,并且使用DESC标志,则只对该集合中最后一个层次结构的成员进行排序.这与Analysis service 2000不同,厚泽对集合中的所有层次结构进行排序.

示例:

SELECT{([Measures].[Reseller Sales Amount])} ON COLUMNS,Order({[Product].[Subcategory].children},([Measures].[Reseller Sales Amount]),DESC) ON ROWSfrom[BF_MDX]

效果如下:

  

2. 结合vba函数

SELECT{([Measures].[Reseller Sales Amount]),([Measures].[Internet Sales Amount])}

ON COLUMNS,Order({[Product].[Product].[Product].Members},

VBAMDX!ABS(([Measures].[Reseller Sales Amount]) -([Measures].[Internet Sales Amount])),DESC)

ON ROWS

from[BF_MDX]

效果如下,结果就是经销商减去网络销售,差距最大的往上排序:

  

3. 注意参数的区别

SELECT{([Measures].[Reseller Sales Amount])} ON COLUMNS,Order({[Product].[Category].[Category].Members} *{[Product].[Subcategory].[Subcategory].Members},([Measures].[Reseller Sales Amount]),desc --BDESC ) ON ROWSFROM[BF_MDX]

效果如下,每个大类下的小类排序 ,如果是BDESC的话就是全局排序,不分大小类:

  

2.层次结构排序

Hierarchize(Set_Expression [ , POST ] )

Hierarchize函数按层次结构的顺序组织指定集中的成员。 此函数始终保留重复项。

如果未指定 POST,则此函数按自然顺序对一定级别的成员进行排序。 如果未指定其他排序条件,则成员的自然顺序就是它们在层次结构中的默认排序顺序。 子成员会紧跟在它们的父成员之后。
如果指定了 POST,则 Hierarchize函数按非自然顺序对一定级别的成员进行排序。 也就是说,子成员优先于他们的父级。

示例:

SELECT{([Measures].[Reseller Sales Amount])} ON COLUMNS,Hierarchize({([Product].[Product Categories].[Subcategory].[Road Bikes]),([Product].[Product Categories].[All Products]),([Product].[Product Categories].[Subcategory].[Mountain Bikes]),([Product].[Product Categories].[Category].[Bikes]),([Product].[Product Categories].[Subcategory].[Touring Bikes])}) ON ROWSfrom [BF_MDX]

效果如下;

    

3. 范围选取函数topcount和bottomcount, head和tail

}TopCount(<table expression>, <rank expression>, <count>)
}按指定数量返回最前面的行,并以表达式指定的降序排列。
}BottomCount(<table expression>, <rank expression>, <count>)
}按指定数量返回最底部的行,以表达式指定的升序排列。
}Head(Set_Expression [ ,Count] )
}Head函数从指定集的开始处返回指定的元组数目。并保留元素的顺序。Count 的默认值为 1。如果指定的元组数目小于 1,则 Head函数返回空集。如果指定的元组数目超过了集中的元组数目,则此函数返回原始集。
}Tail(Set_Expression [ ,Count] )
}Tail函数从指定集的结尾处返回指定的元组数目。 会保留元素的顺序。 Count的默认值为 1。如果指定的元组数目小于 1,则该函数返回空集。 如果指定的元组数目超过了集中的元组数目,则此函数返回原始集。

示例:

SELECT{([Measures].[Reseller Sales Amount])} ON COLUMNS,TopCount({[Product].[Subcategory].[Subcategory].Members},5,([Measures].[Reseller Sales Amount])) ON ROWSfrom [BF_MDX]

效果:

  

示例2.

SELECT{([Measures].[Reseller Sales Amount])} ON COLUMNS,TopCount({[Product].[Subcategory].[Subcategory].Members},5,

SELECT {([Measures].[Reseller Sales Amount])} ON COLUMNS,head(order({[Product].[Subcategory].[Subcategory].Members},([Measures].[Reseller Sales Amount]),desc),5) ON ROWSfrom [BF_MDX]

效果:

  

4.Item函数以及综合运用一下上面的函数,

这个不太好理解,将就看吧
WITHMEMBER [Measures].[Top Product Sales]AS{           TopCount(         [Date].[Calendar Year].currentmember*             [Product].[Product].[Product].Members,                1,                ([Measures].[Internet Sales Amount])      )     *{[Measures].[Internet Sales Amount]}}.Item(0),FORMAT_STRING="Currency" 

MEMBER [Measures].[Top Product Name]AS{          TopCount(             [Date].[Calendar Year].currentmember*         [Product].[Product].[Product].members,        1,                ([Measures].[Internet Sales Amount])          )    }.Item(0).item(1).name

SELECT{    ([Measures].[Internet Sales Amount]),    ([Measures].[Top Product Sales]),    ([Measures].[Top Product Name])   } ON COLUMNS,{    ([Date].[Calendar Year].[CY 2001]):    ([Date].[Calendar Year].[CY 2004])} ON ROWSFROM[BF_MDX]

效果:

  

SSAS的MDX的基础函数(二)相关推荐

  1. SSAS的MDX的基础函数(三),及聚合函数

    1.  Filter函数 Filter(Set_Expression, Logical_Expression )返回根据搜索条件对指定集进行筛选后得到的集. Filter 函数对指定集中的每个元组计算 ...

  2. 【数据库】第二章 基础函数、聚合函数、条件查询、子查询和多表查询

    [数据库]第二章 基础函数.条件查询.聚合函数.多表查询和子查询 文章目录 [数据库]第二章 基础函数.条件查询.聚合函数.多表查询和子查询 一.基础函数 二.聚合函数 1.COUNT 2.MAX/M ...

  3. python语言基础实验_实验二Python语言基础函数包练习.doc

    实验二Python语言基础函数包练习 实验 Python语言基础函数包练习:1208 学号: 实验目的 1.Python语言包,如math.NumPySciPy和Matplotlib等函数包的使用实验 ...

  4. MDX查询基础(一)

    本文完全转载自:http://blog.sina.com.cn/s/blog_622a0069010120pc.htmlhttp://blog.sina.com.cn/s/blog_622a00690 ...

  5. 【C++自我精讲】基础系列二 const

    [C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...

  6. python之内置函数(二)与匿名函数、递归函数初识

    一.内置函数(二) 1.和数据结构相关(24) 列表和元祖(2) list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素). tuple:将一个可迭代对象转化成元组(如果是字典, ...

  7. pytorch基础函数学习

    深度学习框架,似乎永远离不开哪个最热哪个最实用的话题,自己接触甚浅,尚不敢对齐进行大加评论,这里也只是初步接触.目前常见的有TensorFlow,pytorch,Keras等,至于目前哪个做好用,就像 ...

  8. (五)JS基础知识二(通过图理解原型和原型链)【三座大山之一,必考!!!】

    JS基础知识二(原型和原型链) 提问 class 继承 类型判断(instanceof) 原型 原型关系 基于原型的执行规则 原型链 说明 提问 如何准确判断一个变量是不是数组 class的原型本质 ...

  9. 深度学习(6)TensorFlow基础操作二: 创建Tensor

    深度学习(6)TensorFlow基础操作二: 创建Tensor 一. 创建方式 1. From Numpy,List 2. zeros,ones (1) tf.zeros() (2) tf.zero ...

最新文章

  1. Scrum团队初建的十一件事——Scrum中文网
  2. Zookeeper 的典型应用场景场景
  3. 实现EditText输入金额(小数点后两位)
  4. ClassLoader(二)- 加载过程
  5. 分布式通信框架 - rmi
  6. V神建议使用BCH区块链用于以太坊“数据层”
  7. 9 Redis 持久化AOF
  8. 图片转注释python代码(转)
  9. 新一代Spring Web框架WebFlux!
  10. 【转】简析 .NET Core 构成体系
  11. 一直接受键盘字符 接收小写字符出输出大写 接受大写输出小写 数字不输出
  12. 听说你想进玩TikTok?
  13. 20050909:女乘客钓男司机?
  14. 渗透之——Metasploit命令及模块
  15. 【Unity3D插件】DoTween插件(二)
  16. 空降项目经理,该如何服众?
  17. android输入法剪贴板,QQ输入法手安卓V5.4剪贴板 任性粘贴
  18. w ndows无法连接到无线网络,windows无法连接到无线网络,小编教你windows无法连接到无线网络怎么办...
  19. windows硬盘数据安全处理工具
  20. python列表换行输出_Python从列表转换为字符串时处理换行符

热门文章

  1. 2020年海南大学计算机调剂,2020年海南大学招收调剂生
  2. VMWare NSX安全生产和DMZ用例的详细设计指南
  3. 安装VCSA6.5(vCenter Server Appliance 6.5)
  4. Java基础学习总结(130)——使用WebSocket导致jUnit单元测试报No suitable default RequestUpgradeStrategy found错误的解决方法
  5. 敏捷开发系列学习总结(10)——到底什么是敏捷开发?
  6. python内置json模块_python的常用内置模块之序列化模块json
  7. 二次优化问题dfp_MATLAB优化问题应用实例讲解
  8. java的冒泡_java 冒泡排序
  9. 长安福特召回部分新蒙迪欧汽车 共计327辆
  10. 0423-mysql查询语句大全