MDX中常见的计算方法

9、MDX查询:计算与日期维度的深入解析 本文深入探讨了MDX查询在多维数据分析中的应用,涵盖了命名集的使用、计算度量的创建、日期维度操作技巧等内容。通过实际案例分析,如销售数据和库存管理,帮助读者掌握如何利用MDX进行复杂的数据分析和业务决策支持。此外,还介绍了MDX查询的常见错误处理方法和性能优化策略,为数据分析人员提供了全面的技术指导。 阅读详情
本文介绍了一些经常编写的MDX语句的写法。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。

例子模型
以下的MDX中用到的Hierarchy如下:

百分比
1)某个子项占总体的百分比。比如:每种Product的销售额占所有Product销售额的百分比。
WITH  MEMBER  [ Measures ] . [ Sale Amount Ratio ]   AS  
' [Measures].[Internet Sales Amount]/([Measures].[Internet Sales Amount], [Product].[Product Categories].[All]) '  , FORMAT_STRING  =   ' 0.00% '    
SELECT  
{
[ Measures ] . [ Internet Sales Amount ] ,  [ Measures ] . [ Sale Amount Ratio ] }  ON   0 ,
NON EMPTY 
[ Product ] . [ Product Categories ] . [ Product Name ] .Members  ON   1
FROM   [ Adventure Works ]

2)某个子项占其父项的百分比。比如:每种Product的销售额占其所属的SubCategory销售额的百分比。

WITH  MEMBER  [ Measures ] . [ Sale Amount Ratio ]   AS  
' [Measures].[Internet Sales Amount]/
([Measures].[Internet Sales Amount], [Product].[Product Categories].CurrentMember.Parent)
'
, FORMAT_STRING 
=   ' 0.00% '    
SELECT  
{
[ Measures ] . [ Internet Sales Amount ] ,  [ Measures ] . [ Sale Amount Ratio ] }  ON   0 ,
NON EMPTY CROSSJOIN(
[ Product ] . [ Subcategory ] . [ Subcategory ] .Members, 
    [ Product ] . [ Product Categories ] . [ Product Name ] .Members)  ON   1
FROM   [ Adventure Works ]

3)某个子项占其祖先的百分比。比如:每种Product的销售额占其所属的Category销售额的百分比。

WITH  MEMBER  [ Measures ] . [ Sale Amount Ratio ]   AS  
' [Measures].[Internet Sales Amount]/
([Measures].[Internet Sales Amount], 
ANCESTOR([Product].[Product Categories].CurrentMember, [Product].[Product Categories].[Category]))
'
, FORMAT_STRING 
=   ' 0.00% '    
SELECT  
{
[ Measures ] . [ Internet Sales Amount ] ,  [ Measures ] . [ Sale Amount Ratio ] }  ON   0 ,
NON EMPTY CROSSJOIN(
[ Product ] . [ Category ] . [ Category ] .Members,  [ Product ] . [ Product Categories ] . [ Product Name ] .Members)  ON   1
FROM   [ Adventure Works ]

分配、分摊数量
1)根据一个Measure值来分配数量。比如:按照每种Product占总体的销售额多少来分摊成本。

WITH  MEMBER  [ Measures ] . [ Product Cost ]   AS  
' ([Measures].[Internet Total Product Cost], [Product].[Product Categories].[All])*
[Measures].[Internet Sales Amount]/
([Measures].[Internet Sales Amount], [Product].[Product Categories].[All])
'   
, FORMAT_STRING 
=   ' 0.00 '  
SELECT  
{
[ Measures ] . [ Internet Sales Amount ] ,  [ Measures ] . [ Product Cost ] }  ON   0 ,
NON EMPTY 
[ Product ] . [ Product Categories ] . [ Product Name ] .Members  ON   1
FROM   [ Adventure Works ]

2)根据一个Hierarchy来分配数量。比如:在Product Hierarchy中计算每种Category的成本的时候,可以根据每种Category下有多少个产品来进行分配。

WITH  MEMBER  [ Measures ] . [ Product Cost ]   AS  
' ([Measures].[Internet Total Product Cost], [Product].[Product Categories].[All])/
Count(
    Descendants (
        [Product].[Product Categories].CurrentMember,
        [Product].[Product Categories].[Product Name],
        SELF
    ),
    INCLUDEEMPTY
)
'   
, FORMAT_STRING 
=   ' 0.00 '  
SELECT  
{
[ Measures ] . [ Internet Sales Amount ] ,  [ Measures ] . [ Product Cost ] }  ON   0 ,
NON EMPTY 
[ Product ] . [ Product Categories ] . [ Category ] .Members  ON   1
FROM   [ Adventure Works ]

平均值
1)简单平均值。比如:计算一个月中每天平均的销售额是多少。

WITH  MEMBER Measures. [ Avg Gross Profit Margin ]   AS
   
[ Measures ] . [ Internet Sales Amount ] /
   
COUNT (Descendants( [ Ship Date ] . [ Fiscal ] .CurrentMember,  [ Ship Date ] . [ Fiscal ] . [ Date ] ), INCLUDEEMPTY)   

SELECT
  {
[ Measures ] . [ Internet Sales Amount ] , Measures. [ Avg Gross Profit Margin ] }  ON  COLUMNS,
  
[ Ship Date ] . [ Fiscal ] . [ month ] .Members  ON  ROWS
FROM   [ Adventure Works ]

2)加权平均值。没有想到好的例子。

基于时间的计算
1)同比和环比。比如:今年每月的销售额和去年同期相比的变化
参见前两天写的Blog : http://www.cnblogs.com/microsheen/archive/2006/10/28/542818.html,这里要补充的是,在同比MDX中,采用COUSIN或ParallelPeriod都可以,但是采用ParallelPeriod更好一些。

2)累计到当前的统计。比如:得到一年中每一个月的累计销售额。

WITH  MEMBER Measures. [ Additive Internet Sales Amount ]   AS
   
SUM (
       PeriodsToDate(
[ Ship Date ] . [ Fiscal ] . [ Fiscal Year ] , [ Ship Date ] . [ Fiscal ] .CurrentMember), 
       
[ Measures ] . [ Internet Sales Amount ]
   ) 
SELECT
  {
[ Measures ] . [ Internet Sales Amount ] , Measures. [ Additive Internet Sales Amount ] }  ON  COLUMNS,
  
[ Ship Date ] . [ Fiscal ] . [ month ] .Members  ON  ROWS
FROM   [ Adventure Works ]

3)移动平均值。比如:计算一种Category过去三个月的平均销售额合计。

WITH  MEMBER Measures. [ Average Internet Sales Amount ]   AS
   
AVG (LastPeriods( 3 ,  [ Date ] . [ Calendar ] .CurrentMember), 
       
[ Measures ] . [ Internet Sales Amount ] ) 
SELECT
  {
[ Measures ] . [ Internet Sales Amount ] , Measures. [ Average Internet Sales Amount ] }  ON  COLUMNS,
 NON EMPTY (
[ Product ] . [ Product Categories ] . [ Category ] .Members, 
    DESCENDANTS(
[ Date ] . [ Calendar ] . [ Calendar Year ] . & [ 2002 ] ,  [ Date ] . [ Calendar ] . [ Month ] , SELF)
  ) 
ON  ROWS
FROM   [ Adventure Works ]

http://www.cnblogs.com/pincelee/archive/2007/05/07/737891.html

Markdown编辑器:MDX Notes MDX Notes是用tauri开发的一个桌面App,此文件是Windows平台使用的,下载后直接运行即可,不是安装程序。 特点: 支持一键复制 支持自定义组件,自定义样式 内置10+主题和代码主题 支持生成二维码 支持代码 diff 高亮 支持文档格式化 支持导出 Markdown、pdf、html 支持使用 Mermaid 渲染流程图、甘特图、时序图等 支持快捷命令查找 支持桌面和手机预览切换 立即下载

相关推荐

注释(MDX 语法)

SQL Server 2005 联机丛书(2008 年 11 月) 注释(MDX 语法) 注释是程序代码中不执行的文本字符串。(注释又称为“备注”)。可以使用注释说明代码,或者暂时禁用正在诊断的部分多 维表达式 (MDX) 语句和脚本。通过使用注释说明代码,可使程序代码在日后更易于维护。通常使用注释记录程序名称、作 者姓名和主要代码更改的日期。也可以使用注释说明复杂的计算或解释编程方法。

学习MDX

Markdown语法:MDX完全兼容Markdown,你可以使用Markdown的所有原生语法来格式化文本。嵌入JSX:你可以在Markdown文件中直接使用JSX,这意味着你可以嵌入React组件,并在Markdown文档中渲染它们。JavaScript表达式:你可以在Markdown中插入JavaScript表达式,这些表达式会被计算并嵌入到最终的文档中。自定义组件:你可以创建自定义React组件并在Markdown文件中使用它们,这为文档提供了更大的灵活性和丰富的交互性。导出元数据。

qq_38641599的博客 772

请叫我鱼拆,2024扫地机器人的第一次拆机

从背面可以看出,这个机器人是两轮差速模型,两个驱动轮,一个万向轮,驱动轮位于机器人中心位置,这样原地旋转的圆心就是机器人的中心。可以看到设备已经连接,但是没有办法进shell,厂家应该有做了安全保护之类的,有知道从这个口可以登录系统办法的小伙伴可以后台留言。但这台机器人一直报警说,机器人轮子离地,小鱼 估计是防跌落模块有问题,误触发了,所以打算先拆机看看。接着小鱼试了下,机器可以开机,然后给他重新配置wifi,连上 米家。Allwinner,全志的片子,不知道哪个型号的,看产品id,应该支持adb。

生活不止眼前的苟且 3928

MDX函数之 - Descendants

本文说明的是在OLAP多维分析系统中用到MDX语句函数Descendants。 Descendants 汉语是 后代 的意思(百度翻译的)。 MDX官网的解释:返回成员在指定级别或距离上的后代集,可以选择包括或不包括其他级别的后代 详细的用法请参考下面的网址:https://msdn.microsoft.com/zh-cn/library/ms146075.asp 这里提供一些例子来说明一

lxn的专栏 2560

ctf——writeup

ctf线上赛——第三关地址:http://106.75.86.18:2222提示:ip spoofing——ip伪造首先访问目标地址,一个正常的网页,挺文艺的。上面有些提示。根据上面的提示,我们浏览网页。找了好久,终于找到你。这个跳转链接。(在这个页面下方)我们接着点击这个链接,就跳转到administrator.php这个页面了。看到这个登录页面,就要知道用户名,密码,可是没有怎么办。一开始也试

Child_by_dream的博客 1320

ClickHouse的bitmap使用

ClickHouse的bitmap使用 bitmap的基本使用 在CK中bitmap有两种构建方式,在ClickHouse的官网有说明: (1)一个是由聚合函数groupBitmapState构造的, (2)另一个是由Array Object构造的。同时还可以将位图对象转化为数组对象。 bitmap实战 数据和基本数据表准备 创建一张基本表,一个用户表,有多个描述的维度,每个维度由该维度的唯一id。 CREATE TABLE test02(id UInt16, tag1 UInt8, tag2 UInt8,

zg_hover的专栏 5654

四款免费开源的Markdown桌面编辑器

四款免费开源的Markdown桌面编辑器

BinField的专栏 1万+

别再为UE5像素流部署踩坑了!Windows服务器单实例保姆级避坑指南(含Node.js证书、coturn空文件夹等常见问题解决)

本文提供了UE5像素流在Windows服务器单实例部署中的全面解决方案,涵盖Node.js证书过期、coturn空文件夹等常见问题。通过详细的步骤指导和配置建议,帮助开发者高效完成部署,避免常见陷阱,特别适合局域网环境下的应用场景。

weixin_30315435的博客 463

[MDX学习笔记之一]MDX中一些常见的计算

本文来源于《MDX Solutions with Microsoft SQL.Server Analysis Services 2005 and Hyperion Essbase 2nd Edition》一书的内容,主要介绍了一些经常编写的MDX语句的写法。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。例子模型以下的MDX中用到的Hierarchy如下: ...

weixin_30571465的博客 348

最佳量化交易的计算机操作系统

本文在Creative Commons许可证下发布   我经常被问到的一个问题是:用哪种计算机操作系统和计算软件进行量化交易的理论研究和代码实现?   我想把这个问题简化,从挑选的计算软件和计算库来反推最佳使用的计算机操作系统。简而言之,就是在本文撰写的时候而言,如果你想进行基于任何严肃的数学理论和金融量化交易研究理论,这里特指机器学习或者深度学习。并且需要在本地研究机器上使用桌面版本,...

evilqliang的博客 2306

Synopsys工具链实战:如何用VCS、DC、ICC和Calibre跑通你的第一个数字IC设计项目?

本文详细介绍了如何使用Synopsys工具链(VCS、Design Compiler、ICC和Calibre)完成数字IC设计项目,从RTL代码到GDSII版图的全流程。涵盖环境配置、RTL设计验证、逻辑综合、物理实现及签核验证等关键步骤,帮助工程师掌握高效的数字IC设计流程。

weixin_42525005的博客 196

MDX Notes:一款跨平台笔记软件和公众号排版编辑器

是一款免费开源、跨平台的笔记软件和公众号排版编辑器,可以使用 MDX(Markdown + JSX)进行编辑和排版。MDX 结合了 Markdown 和 JSX 的优点,它让用户可以在 Markdown 文档中直接使用 React 组件,构建复杂的交互式文档。

Tony.Dong的专栏 652

逆向解析抖音核心校验参数:bd-ticket-guard-client-data的Python生成逻辑

本文深入解析了抖音核心校验参数bd-ticket-guard-client-data的生成逻辑,详细介绍了其动态证书生成、非对称加密机制及Python实现方法。通过逆向分析,揭示了抖音安全体系的双层验证机制,包括RSA密钥对生成、证书签名及时间戳校验等关键技术要点,为开发者提供了一套完整的参数生成解决方案。

weixin_26642481的博客 408

MDX常见计算方法(百分比/分配/平均值/基于时间的计算)

MDX常见计算方法(百分比/分配/平均值/基于时间的计算)

jackfor001的专栏 2884

实操微信支付,适合第一次接通微信支付的同学

我的实际操作命令如下:就会生成图3中多出来的file文件夹,/Users/camel/cert/xxxxxx_cert/file/wechatpay_5A4xxxxxxxxxx9.pem,wechatpay_xxxxx5A4849E9.pem就是微信支付平台证书,也是程序真正需要的。•注意:我的操作说明,我是把下载好的 CertificateDownloader.jar 文件,放在了解压证书的目录里(图3)。//下面的静态参数要仔细看下面的解释,否则只会调用别人写好的方法,压根学不会0-1接入微信支付。

wjianwei666的专栏 525

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Microsoft SQL Server 分析服务

Microsoft SQL Server 分析服务:http://www.cn-doc.com/_soft_database_tech_doc/2006_02_23_17/20060223165957654.htm MDX中一些常见的计算: http://www.cnblogs.com/microsheen/archive/2006/11/06/552237.html 转载于:https...

weixin_34037977的博客 160

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[SQL Server2008]MDX查询语句

在Essbase中使用MDX只能用于查询,尚不能来操作Cube(MS SSAS中可以使用MDX来操作Cube的),所以这里只学习MDX的Select语句。 在学习的过程中,我觉得最有难度的地方有两个。一是,对OLAP多维的理解。如同学习SQL一样,SQL作用的对象是表,表的结构都是二维的,标识行列即可;但是MDX作用的对象是多维数据库,那么就得理解多维数据库的维度,层级,成员,以及如何

迭代生活,程序人生 2277

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MDX计算方法(百分比……)

本文介绍了一些经常编写的MDX语句的写法。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。<br /><br />例子模型<br />以下的MDX中用到的Hierarchy如下:<br /><br />百分比<br />1)某个子项占总体的百分比。比如:每种Product的销售额占所有Product销售额的百分比。WITH MEMBER [Measures].[Sale Amount Ratio] AS <br />'[Measures].[Internet Sales Amou

goustzhu地盘 2790

MDX语言的函数实现

MDX是一种多维数据查询语言,类似于SQL,但它的设计目的是为了对多维数据进行查询和分析。MDX常用于商业智能和数据仓库中,尤其是在运行OLAP(联机分析处理)系统时。MDX能够处理多维数据结构,如数据立方体,并通过维度和度量值进行数据分析。在MDX中,用户可以自定义函数或度量,这对于实现复杂的业务逻辑非常重要。自定义度量可以通过进行定义。MDX语言的函数实现为数据分析提供了强大的工具,理解和掌握MDX中的各种函数对数据分析师至关重要。

2501_90290992的博客 357

MDX语言的面向对象编程

虽然MDX并不是专门的面向对象编程语言,但它的设计理念中蕴含着许多面向对象的特性。通过对维度、层次、计算度量的灵活应用,MDX为数据分析提供了一种强大且灵活的方式。面向对象编程的思想为我们提供了一种理解MDX的框架,使得我们在设计数据分析模型时,可以更清晰地看待维度之间的关系及其操作。这种面向对象的思维方式,将帮助开发者更有效地进行数据建模和分析,从而提升工作效率。未来,随着数据规模的不断扩大和复杂化,基于MDX的面向对象编程思想将可能在数据科学、商业智能等领域发挥更为重要的作用。

2501_90416796的博客 432

BB Gap Report的计算方法以及有用的MDX查询表达式(对于Property,Aspect等不同Dimension的过滤)

 H&S Av %Min %Level*Process00 Implementation00      E

kissjob的专栏 1085

mdx常用计算之环比与同期比

同比和环比计算是企业应用、电子商务应用中常用的计算方法,也是常用的数据分析手段。写这篇文章也是因为最近在学习MDX相关的一些计算方法的同时回想到原来我在项目中使用过的一些类似的,利用SQL来完成的统计计算,如前期和当期的差额,趋势等。比较之下,利用MDX来完成这些计算比用SQL来做要简单清晰得多,当然这是毫无疑问的。原来利用几十行甚至上百行SQL来完成的计算(有时还要借助程序代码来完成计算)现在用

RainyLin-SunnyLin的专栏 4285

使用MDX进行环比查询

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 498

用MDX进行同比及环比计算

同比和环比计算是企业应用、电子商务应用中常用的计算方法,也是常用的数据分析手段。写这篇文章也是因为最近在学习MDX相关的一些计算方法的同时回想到原来我在项目中使用过的一些类似的,利用SQL来完成的统计计算,如前期和当期的差额,趋势等。比较之下,利用MDX来完成这些计算比用SQL来做要简单清晰得多,当然这是毫无疑问的。原来利用几十行甚至上百行SQL来完成的计算(有时还要借助程序代码来完成计算...

weixin_30840573的博客 380

MDX语言的编程范式

MDX是一种专门为多维数据集查询而设计的语言,主要用于Microsoft SQL Server Analysis Services(SSAS)等OLAP服务。与传统的SQL语言不同,MDX针对的是多维数据结构,这意味着其查询可直接操作维度、层次以及度量值,这使得MDX在处理复杂分析时更为高效。

2501_90168283的博客 328
上一篇: Sql2005如何用dtexec运行ssis(DTS)包
下一篇: 百度竞价排名关键词质量度优化指南
Reasoncool
博客等级 码龄21年 16粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值