15个很具代表性的MDX查询语句
                     出处 www.sqlmag.com   原文下载 原作者Russ Whitney

02.  所有商店中销售前10名的产品类别有哪些?
Listing 2 直接利用TopCount()函数查询销售前10名的产品。

(这是一种最直接的方法,TopCount()函数本身自带排序(降序)的功能)

LISTING 2: Determining Top 10 Product Categories

说明:查询销售前10名的产品类别

select {[Unit Sales]} on COLUMNS,

TopCount( [Product].[Product Category].Members, 10, ([Unit Sales]) ) on ROWS

from Sales
查询结果展示:

03.  在美国,刚刚过去的三个季度里都有销售量的食品和饮料有哪些?
    (这个查询也可以理解为“过去三个季度里食品和饮料销售量都不为0的产品有哪些?”)。查询Listing 3 示范了如何动态的确定对应的时间集合—这是一项很有价值的技巧。时间集合动态随着cube数据的更新而改变(也就是说该查询无论你在什么时候执行,无论cube的数据作了多少次更新,结果都是最近三个月的数据)。首先,自定义集合LastQuarter定义了时间维度中有销售记录的最近一个季度。自定义集合Last3Quarters在LastQuarter的基础上利用Range()函数(实际没有range()函数,冒号:就是作者说的函数)指定了以LastQuarter为最后一个季度的连续的三个季度。我不直接在Last3Quarter(原文是LastQuarter,我认为是作者笔误)的定义中使用Tail()函数是因为这样做返回的可能不是连续的三个季度;因为空记录的季度肯能出现在任何季度,Filter()函数只能排除掉空季度。Lag()函数结合range()函数,确保了返回的三个季度是连续的。

在这个查询中,item(0).item(0) 函数取得指定集合的第一个成员,因为集合在技术上就是一组元组[如:来自不同维度的一系列成员也可以组成一个元组],所以用第一个Item()函数选择元组,第二个Item()选择该元组里的成员。(我们可以这样理解,集合由元组组成,元组由成员组成)。

Listing_03.Determining Brands Sold During the Past Three Quarters.txt

说明:在过去三个季度里都存在销售量的商品销售记录

with set [LastQuarter] as 'Tail(Filter([Time].[Quarter].Members, Not

IsEmpty([Time].CurrentMember)),1)'

set [Last3Quarters] as ' [LastQuarter].item(0).item(0).Lag(2) : [LastQuarter].item(0).item(0)'

select [Last3Quarters] on COLUMNS,

Non Empty Union(Descendants( [Food], [Product].[Brand Name] ), Descendants( [Drink],

[Product].[Brand Name] )) on ROWS

from Sales

查询结果展示:

注:

TopCount

从集合顶端开始返回指定数目的项,可以选择首先对集合排序。

例子

SELECT  {[Measures].[Store Sales]  } ON COLUMNS,

Topcount(Descendants([Store].[All Stores].[USA],[Store].[StoreCity] ), 10, [store sales])   ON rows from sales

Subset

从集合中返回元素的子集。

例子

SELECT    {measures.[store sales] }  ON COLUMNS,

{Subset(Time.allMembers,0,6)} ON rows from sales

Tail

从集合尾部返回子集。

例子

SELECT    {measures.[store sales] }  ON COLUMNS,

{tail(Subset(Time.allMembers,0,6),4)} ON rows from sales

Lag

返回指定成员的所在维度上的上一个成员。

例子

with member [measures].[a1] as 'time.currentmember.lag(1).name'

SELECT {[measures].[a1] } ON COLUMNS , { [Time].allmembers } ON ROWS  FROM [Sales]

Filter

返回根据搜索条件对集合进行筛选所得到的集合。

例子

SELECT  {[Measures].[Store Sales]  } ON COLUMNS,

{ filter(time.allmembers,[Measures].[Store Sales]>50000)

}   ON rows from sales

Item

从集合中返回指定元组或者从元组中返回指定成员。

例子

with set kkk as '{{[Time].[1997], [Time].[1998]}*{[Store].[All Stores].[Canada],[Store].[All Stores].[USA]} }'

member measures.jjj as 'TupleToStr(kkk.item(0).item(0))',solve_order=1

select  { measures.[store sales],measures.jjj } on columns,

{kkk} on rows

from Sales

Union

返回两个集合的并集,可以选择保留重复项。

例子

SELECT  {[Measures].[Store Sales]  } ON COLUMNS,

Union(USA.Children, CANADA.Children, ALL)

ON rows from sales

转载于:https://www.cnblogs.com/anchky/archive/2006/07/17/MDXQuerise02_03.html

翻译介绍15个经典的MDX查询-02and03相关推荐

  1. LoRaWAN介绍15 终端设计

    LoRaWAN介绍15 终端设计 "大自然和智慧在任何事物上都不存在分岐"--玉外纳 因为应用在广阔的行业内,在传感器.执行器.供电.通信延时等不同的要求,让LoRaWAN的End ...

  2. 【翻译】(15)菜单

    [翻译](15)菜单 see http://developer.android.com/guide/topics/ui/menus.html 原文见 http://developer.android. ...

  3. MDX查询基础(一)

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

  4. 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3

    14.4 exportfs命令 由于配置了no_root_squash的权限所以有如下结果: 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp yum ...

  5. oracle查询案例,2道经典的oracle查询案例

    第一题: 第一题: 直接贴代码: select Id,Name,Money,(select Money from test1 a where a.Id = decode(b.Id - 1,0,null ...

  6. 国产主可控的嵌入式仿真测试软件SkyEye与可信编译器L2C的核心翻译介绍

    为了满足国内某安全攸关领域的需求, L2C编译器的开发始于2010年9月, 其目标是设计实现一个经过形式化验证的可信编译器, 其源语言是面向领域的同步数据流语言Lustre*(Lustre语言的一个变 ...

  7. java连接 mdx,olap4j连接sap hana的xmla服务mdx查询报错【已解决】

    olap4j连接sap hana的xmla服务mdx查询报错[已解决] 各位大神,求指教~~我在java中通过olap4j连接上了sap hana的xmla xs 服务,通过mdx查询hana中的数据 ...

  8. 15款经典图表软件推荐 创建最漂亮的图表

    在这篇文章中,将列出图表,图形和数据可视化的最佳软件,从创建基本的2D图表到产生复杂的数据集的数据可视化,这些PHP,Javascript.Flash的图表,对于任何一个严谨的开发者都是必须一览的. ...

  9. Apache Drill介绍-SQL语句和系统表查询

    Apache Drill介绍-SQL语句和系统表查询 Apache Drill 主要用于查询,主要关注select 和 建表语句,Drill 支持select 很标准, 这次主要介绍create语句, ...

最新文章

  1. 机器学习数据预处理之缺失值:固定值填充
  2. 网易云信入选《2021 年浙江省首版次软件产品应用推广指导目录》
  3. Hive 外部表关联分区数据
  4. android 主流分辨率是多少,android 屏幕分辨率问题
  5. linux中启动 java -jar 后台运行程序
  6. Linux: kill
  7. 恒定湿热试验条件及标准-环境试验中的湿热试验报告
  8. 超级好用的谷歌浏览器页面翻译插件(Mac和Win系统通用)
  9. mysql 打开sql日志,记录所有sql
  10. 大学物理实验长度的测量实验报告_大学物理长度测量实验报告
  11. 防火墙基础之路由器与防火墙单臂路由和DHCP接口地址池的配置
  12. Python PrettyTable 模块(美化库)
  13. 学习笔记:Qt程序打包发布
  14. 关于内存、外存、磁盘、硬盘、软盘、光盘的区别
  15. 基于exif信息进行图片方向旋转修正
  16. python 爬虫 requests模块 中的Cookies 验证 通过验证cookies模拟登陆豆瓣登陆
  17. MySQL批量导入Excel数据【超详细】
  18. qq群排名霸屏技巧排名推广
  19. 2008年超级计算机排名,2008年Opteron超级计算机性能将突破1petaflop
  20. WIFI密码破解 WIFI万能钥匙 显示连接密码去除广告优化版

热门文章

  1. 统计上报---日志上报成功率高的方式
  2. Django中多种重定向方法使用
  3. mysql 密码 You must reset your password using ALTER USER statement before executing this statement....
  4. 将ResultSet转为List
  5. 每天一个前端名词——Babel
  6. 动态规划解决方案最长公共子序列问题(开启)
  7. 测试start backup和ndb_restore
  8. Verilog中`define和parameter有什么区别
  9. CCS V5 创建工程和配置软件仿真
  10. 计算机二级c语基础知识,计算机二级C语基础知识整理.doc