`
zhzhiqun2005
  • 浏览: 219294 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MDX中函数的应用

阅读更多
MDX中函数的应用

成员百分比分析 函数:CurrentMember、Parent等;
分析各城市的销售所占全部城市的总销售额百分比。
WITH MEMBER Measures.[Unit Sales Percent] AS '((Store.CURRENTMEMBER, Measures.[Unit Sales]) / (Store.CURRENTMEMBER.PARENT, Measures.[Unit Sales])) ', FORMAT_STRING = 'Percent' SELECT {Measures.[Unit Sales], Measures.[Unit Sales Percent]} ON COLUMNS, ORDER(DESCENDANTS(Store.[USA].[CA], Store.[Store City], SELF),[Measures].[Unit Sales], ASC) ON ROWS FROM Sales




重要顾客分布分析 函数:Count、Sum、Filter、Descendants等;
分析各个省份中重要顾客的数量及他们的总购买量,"重要顾客"的定义是一个顾客的购买金额或者购买数目达到或超过一定的数值。
 WITH MEMBER [Measures].[Qualified Count] AS ‘ COUNT(FILTER(DESCENDANTS(Customers.CURRENTMEMBER, [Customers].[Name]), ([Measures].[Store Sales]) > 10000 OR ([Measures].[Unit Sales]) > 10))' MEMBER [Measures].[Qualified Sales] AS 'SUM(FILTER(DESCENDANTS(Customers.CURRENTMEMBER, [Customers].[Name]), ([Measures].[Store Sales]) > 10000 OR ([Measures].[Unit Sales]) > 10), ([Measures].[Store Sales]))' SELECT {[Measures].[Qualified Count], [Measures].[Qualified Sales]} ON COLUMNS, DESCENDANTS([Customers].[All Customers], [State Province], SELF_AND_BEFORE) ON ROWS FROM Sales




排序 函数:Order

对各个产品类别按照Store Sales指标降序排列,排序分为维内排序/整体排序。
select {[Measures].[Unit Sales], [Measures].[Store Sales]} on columns, Order([Product].[Product Department].members, [Measures].[Store Sales], DESC) on rows from Sales




历史相关的累计值 函数:YTD、 Sum、Descendants

求销售额的本年累计值YTD(),类似还可以求解历史累计YTD()、本月累计MTD()、本周累计WTD()等, 以及更通用的函数PeriodToDate()。
with member [Measures].[Accumulated Sales] as 'Sum(YTD(),[Measures].[Store Sales])' select {[Measures].[Store Sales],[Measures].[Accumulated Sales]} on columns, {Descendants([Time].[1997],[Time].[Month])} on rows from [Warehouse and Sales]




四则运算 函数:四则运算函数;

在成员上及指标上均可以进行四则运算,动态派生出新的成员及指标。
WITH MEMBER MEASURES.ProfitPercent AS '([Measures].[Store Sales]-[Measures].[Store Cost])/([Measures].[Store Cost])',FORMAT_STRING = '#.00%' MEMBER [Time].[First Half 97] AS '[Time].[1997].[Q1] + [Time].[1997].[Q2]' MEMBER [Time].[Second Half 97] AS '[Time].[1997].[Q3] + [Time].[1997].[Q4]' SELECT {[Time].[First Half 97], [Time].[Second Half 97], [Time].[1997].CHILDREN} ON COLUMNS, {[Store].[Store Country].[USA].CHILDREN} ON ROWS FROM [Sales] WHERE (MEASURES.ProfitPercent)




逻辑判断 函数:IIf

逻辑判断可以根据不同的条件产生不同的结果。下例判断各商店是否是啤酒及白酒的大卖家。
WITH MEMBER [Product].[BigSeller] AS 'IIf([Product].[Drink].[Alcoholic Beverages].[Beer and Wine] > 100, "Yes","No")' SELECT {[Product].[BigSeller],[Product].children} ON COLUMNS, {[Store].[All Stores].[USA].[CA].children} ON ROWS FROM Sales




成员属性 函数:Properties、Dimension Properties

成员属性是与成员绑定的,其对应关系导致很难选择合适的使用方式。以下是使用成员属性的例子,它对应每个商店成员列出了商店类型属性,相应的,商店经理、商店规模、商店地址等属性也可以被列出。该用法稍加灵活应用就可以解决过去遇到的企业名称——〉企业代码对应展示问题。
WITH MEMBER [Measures].[StoreType] AS '[Store].CurrentMember.Properties("Store Type")', MEMBER [Measures].[ProfitPct] AS '(Measures.[Store Sales] - Measures.[Store Cost]) / Measures.[Store Sales]', FORMAT_STRING = '##.00%' SELECT { Descendants([Store].[USA], [Store].[Store Name])} ON COLUMNS, {[Measures].[Store Sales], [Measures].[Store Cost], [Measures].[StoreType], [Measures].[ProfitPct] } ON ROWS" FROM Sales 另外一种用法: SELECT {[Measures].[Units Shipped], [Measures].[Units Ordered]} ON COLUMNS, [Store].[Store Name].MEMBERS DIMENSION PROPERTIES [Store].[Store Name].[Store Type] ON ROWS FROM Warehouse




多步计算实现复杂逻辑 函数:其实可以是任意函数合乎逻辑的组合

求出从来没有买过乳制品的顾客,求解过程是先求出每位顾客在过去购买的乳制品的数量累计,然后找出累计值为0的顾客。同样,过去遇到的求税额大于平均税额的海关的问题可以类似求出。
with member [Measures].[Dairy ever] as 'sum([Time].members, ([Measures].[Unit Sales],[Product].[Food].[Dairy]))' set [Customers who never bought dairy] as 'filter([Customers].members, [Measures].[Dairy ever] = 0)' select {[Measures].[Unit Sales], [Measures].[Dairy ever]} on columns, [Customers who never bought dairy] on rows from Sales




同期、前期 函数:PrevMember、ParellelPeriod

求解各产品销售额的去年同期值,年增长率。

with member [Measures].[Store Sales Last Period] as '([Measures].[Store Sales], Time.PrevMember)', format='#,###.00' member [Measures].[Yearly Increase Rate] as ‘([Measures].[Store Sales] - [Measures].[Store Sales Last Period])/ [Measures].[Store Sales Last Period]', FORMAT_STRING = 'Percent' select {[Measures].[Store Sales], [Measures].[Store Sales Last Period]} on columns, { [Product].members} on rows from Sales where ([Time].[1998])



另一个例子,使用ParellelPeriod函数。
WITH MEMBER [Measures].[YTD Unit Sales] AS 'COALESCEEMPTY(SUM(YTD(), [Measures].[Unit Sales]), 0)' MEMBER [Measures].[Previous YTD Unit Sales] AS '(Measures.[YTD Unit Sales], PARALLELPERIOD([Time].[Year]))' MEMBER [Measures].[YTD Growth] AS '[Measures].[YTD Unit Sales] - ([Measures].[Previous YTD Unit Sales])' SELECT {[Time].[1998]} ON COLUMNS, {[Measures].[YTD Unit Sales], [Measures].[Previous YTD Unit Sales], [Measures].[YTD Growth]} ON ROWS FROM Sales;




Top N分析 函数:TopCount

求解1998年总购买量处于前5名的顾客;
select {[Measures].[Store Sales]} on columns, {TopCount([Customers].[Customer Name].members,5, [Measures].[Store Sales])} on rows from Sales where ([time].[1998])




成员过滤 函数:Filter、Except

求解1998年所有顾客中购买总额得到1万元以上的顾客,列出满足条件的顾客的名字、年购买数量、年购买金额。
 Select {[measures].[Store Sales],[measures].[unit sales]} on columns, FILTER(Customers.[Name].Members,[Measures].[Store Sales] > 10000) on rows From sales Whare ([time].[1998]) 另外一种成员过滤(从所有的媒体类型中剔除No Media类型),确切的说应该是集合运算。 select {[Measures].[Unit Sales]} on columns, except([Promotion Media].[Media Type].members,{[Promotion Media].[Media Type].[No Media]}) on rows from Sales




时间段 函数:sum、":"运算符

求美国的商店在指定时间段内的销售额。
WITH MEMBER [Time].[1997].[Six Month] AS 'SUM([Time].[1]:[Time].[6])' MEMBER [Time].[1997].[Nine Month] AS 'SUM([Time].[1]:[Time].[9])' SELECT {[Time].[1997].[Six Month],[Time].[1997].[Nine Month]} ON COLUMNS, {[measures].[store salse]} ON ROWS FROM Sales Where ([Store].[USA]) 
分享到:
评论

相关推荐

    微软Olap服务MDX函数应用举例.

    对丰富的函数集可以提供的强大功能有一个直观的认识 看看Microsoft是怎样应用函数,也许可以参考借鉴;

    MDX解决方案(第2版)中文版

    第9章 Hyperion Essbase中属性维度和成员属性的用法 第10章 通过外部函数扩展MDX 第11章 通过MDX改变多维数据集和维度环境 第12章 Microsoft Analysis Services中计算的多种方法 第13章 Analysis Services 2005...

    MDX解决方案_中文第二版_part1.rar

     本书主要内容:针对Microsoft与Hyperion产品的具体应用,组合不同的MDX函数来解决各种问题的技术与技巧,SQL Server 2005 Analysis Services的功能,以及与先前版本相比它与MDX之间关系的变化,MDX的标准语法,...

    MDX解决方案(第2版)-中文版.part2.rar

    第9章 Hyperion Essbase中属性维度和成员属性的用法 第10章 通过外部函数扩展MDX 第11章 通过MDX改变多维数据集和维度环境 第12章 Microsoft Analysis Services中计算的多种方法 第13章 Analysis Services 2005...

    MDX解决方案(第2版)

     本书主要内容:针对Microsoft与Hyperion产品的具体应用,组合不同的MDX函数来解决各种问题的技术与技巧,SQL Server 2005 Analysis Services的功能,以及与先前版本相比它与MDX之间关系的变化,MDX的标准语法,...

    MDX解决方案(第2版)-中文版.part1

    第9章 Hyperion Essbase中属性维度和成员属性的用法 第10章 通过外部函数扩展MDX 第11章 通过MDX改变多维数据集和维度环境 第12章 Microsoft Analysis Services中计算的多种方法 第13章 Analysis Services 2005...

    MDX解决方案(第2版)英文版

    第6章 MDX中的排序和分类 第7章 MDX高级应用 第8章 使用Microsoft Analysis Services的属性数据模型 第9章 Hyperion Essbase中属性维度和成员属性的用法 第10章 通过外部函数扩展MDX 第11章 通过MDX改变多维...

    MDX解决方案(第2版)中文版 卷2

    第9章 Hyperion Essbase中属性维度和成员属性的用法 第10章 通过外部函数扩展MDX 第11章 通过MDX改变多维数据集和维度环境 第12章 Microsoft Analysis Services中计算的多种方法 第13章 Analysis Services 2005...

    MDX解决方案_中文第二版_part2.rar

     本书主要内容:针对Microsoft与Hyperion产品的具体应用,组合不同的MDX函数来解决各种问题的技术与技巧,SQL Server 2005 Analysis Services的功能,以及与先前版本相比它与MDX之间关系的变化,MDX的标准语法,...

    MDX非常有用的语法

    一、members和Children的用法,二、一个轴上显示该维中多个元组。。。。。。。。。。。十一、TopCount函数,十二、Generate函数,将第二个表达式的结果带入第一个表达式进行处理(前提是:在第二个表达式中要有第一个...

    mdx-bundler::dodo:给我MDXTSX字符串,我会给您一个可以渲染的组件。 包括所有依赖项

    您有一个字符串MDX和它使用的各种TS / JS文件,并且想要获取这些文件的捆绑版本以在浏览器中评估。 这个解决方案 将您的MDX和JS字符串提供给该函数,它将返回给您捆绑代码的单个字符串。 目录 安装 该模块通过与...

    SQL Server 2008商业智能完美解决方案 3/3

    11.9.1 在SSRS 2008中使用MDX 262 11.9.2 在PerformancePoint Server 2007上使用MDX 264 11.10 小结 267 第12章 理解数据挖掘结构 268 12.1 审核业务场景 268 12.2 使用BIDS数据挖掘界面 271 12.2.1 理解数据类型和...

    SQL Server 2008商业智能完美解决方案 1/3

    11.9.1 在SSRS 2008中使用MDX 262 11.9.2 在PerformancePoint Server 2007上使用MDX 264 11.10 小结 267 第12章 理解数据挖掘结构 268 12.1 审核业务场景 268 12.2 使用BIDS数据挖掘界面 271 12.2.1 理解数据类型和...

    SQL Server 2008商业智能完美解决方案 2/3

    11.9.1 在SSRS 2008中使用MDX 262 11.9.2 在PerformancePoint Server 2007上使用MDX 264 11.10 小结 267 第12章 理解数据挖掘结构 268 12.1 审核业务场景 268 12.2 使用BIDS数据挖掘界面 271 12.2.1 理解数据类型和...

    SQL Server 2008 商业智能完美解决方案(3)

    11.9.1 在SSRS 2008中使用MDX 262 11.9.2 在PerformancePoint Server 2007上使用MDX 264 11.10 小结 267 第12章 理解数据挖掘结构 268 12.1 审核业务场景 268 12.2 使用BIDS数据挖掘界面 271 12.2.1 理解数据...

    jpivot学习总结.doc

    1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用当中你需要下面的这些文件: /wcf/** /jpivot/** /WEB-INF/wcf/** /WEB-INF/jpivot/** /WEB-INF/lib/** 最后你还需要对比 jpivot.war 里的 web.xml ...

    remotion::movie_camera: 在 React 中以编程方式创建视频

    Remotion 是一套库,为使用 React 以编程方式创建视频奠定了基础。 为什么要在 React 中创建视频? 利用网络技术:使用所有的 CSS、Canvas、SVG、WebGL 等。 利用编程:使用变量、... “MDX 中的 X”谈话观看•源代码

    markdown:ReadMe的风味Markdown解析器和基于React的渲染引擎

    npm install --save @readme/markdown用法默认情况下,更新的markdown包导出一个函数,该函数采用一串并返回一个React组件树: import React from 'react' ;import rdmd from "@readme/markdown" ;export default ...

    :movie_camera: Remotion 是一套库,为使用 React 以编程方式创建视频奠定了基础。

    加入 Discord Remotion 是一套库,为使用 React 以编程方式创建视频奠定了基础。...“MDX 中的 X”谈话 观看 • 源代码 • 使用 Remotion 重新录制本次谈话。 重新设计散点图手表 • 源代码 • Edward R. Tuf

    大数据分析平台.docx

    提供标准的MDX解析与执行,与数据仓库等模块结合,提供针对海量数据的实时分析和处理能力。 大数据分析平台全文共4页,当前为第4页。大数据分析平台全文共4页,当前为第4页。数据集成:能够胜任在大数据量、高并发、...

Global site tag (gtag.js) - Google Analytics