1. MDX 的基本结构 - MDX 的基本结构有三种: Members, Tuple 和 Set 
 
2. Members - 指的是维度树上的一个节点, 这里有一点需要指出, 量度也是一个特殊的维度, 所以对于普通维度上的 Member 可以有几下几种表示方法:[Customer] 或 [Time].[1996] 等. 对于特殊的维度——量度而言, 也可以表示一个 Member ,如: [Measures].[ unit sales] 等.
   Member 的表示方法就是用中括号的形式,"[……]".
 
3. Tuple - 是由若干个 Members 组成, 每一个维度上最多只能有一个 Member, 对于一个 Tuple 而言至少有一个维度, 多则不限, 同时对于没有列出来的那就表示为默认的 Member. Tuple 的表示方法是小括号"()", 因为其又有 Member 构成, 所以通常的格式为 "([…],[…][…],…)" 示例 :
  a) ([Regin ].[USA])
  b) ([product].[ computers],[time].[2008]) 
 
4. Sets - 同一维度上若干个 Members 的集合, 或者是若干个 Tuples 的集合, 但这里有一个地方需要注意, 那就是如果是若干个 Tuple 组成的集合是, 各个 Tuple 里的 Member 之间存在着一定的对应关系. 集合的表示方法用大括号"{}", 所以可能的表示方法为:
  a) {[time].[2008],[time].[2009],[time].[2000]}, 这里 Set 是由同一维度的若干个 Member 组成. 
  b) {([computer],[usa ]),([ mobile],[china])}, 这个 Set 是由两个 Tuples 组成, 这里大家可以看到, 在第一个 Tuple 当中, 第一个 Member 是名为 computer 的产品, 所以后面的 Tuple 的第一个 Member 也必须是一个产品, 所以我们这里看到的是 mobile, 第一个 Tuple 里第二个 Member 是一个国家, 所以第二个 Tuple 的第二个 Member 也必须是一个国家名, 依次类推.
  MDX 查询语句 一个标准的 MDX 查询语句就是由我们前面介绍的 MDX 的三个基本对象构成, 也就是 Member,Tuple, Set.
  一个标准的 MDX 查询的语法如下:
以下是代码片段:
 
SELECT Set ON COLUMNS,
Set ON ROWS
FROM Cube
WHERE Tuple

示例:

以下是代码片段:

SELECT
{[time].[ 1997],[time].[1998]}
ON COLUMNS,
{([product].[drink],[customer].[gender].[F]),( [product].[food],[customer].[gender].[M])}
ON ROWS
FROM [Sales]
WHERE ([Measures].[ StoreSales ])

这个MDX 查询就表示:查询时间为 1997 和 1998 两年的 drink 类产品, 女消费者和 food 类产品男消费者的 Store Sales.

文章出处:SSAS-MDX#001 - MDX 基本结构

【转载】SSAS-MDX#001 - MDX 基本结构的更多相关文章

  1. 【转载】MSDN-MDX#001 - 多维表达式 (MDX) 参考

    摘录于MSDN MDX 的一些重要概念 1. MDX 介绍 多维表达式 (MDX) 是用于在 Microsoft SQL Server Analysis Services (SSAS) 中处理和检索多 ...

  2. MDX Query - mdx的基本语法和概念

    文档: https://wenku.baidu.com/view/ef14b0e1900ef12d2af90242a8956bec0975a5e7.html?rec_flag=default http ...

  3. 【转载】quickLayout.css-快速构建结构兼容的web页面

    文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/wordpress/ 原文链接:http://www.zhangxinxu.com/wordpress/?p=4 ...

  4. [转载]github在线更改mysql表结构工具gh-ost

    GitHub正式宣布以开源的方式发布gh-ost:GitHub的MySQL无触发器在线更改表定义工具! gh-ost是GitHub最近几个月开发出来的,目的是解决一个经常碰到的问题:不断变化的产品需求 ...

  5. My SQL随记 001 常用名词/结构化语言

    DBMS (Database Management System) 字段/域(列名或者列头 如:姓名身高性别为字段) 姓名 身高 性别 小周周 157 女 记录(一行数据 如:小周周 157 女 ) ...

  6. 转载别人的ftp,觉得目录结构不错,学习

    开发简单的FTP:1. 用户登陆2. 上传/下载文件3. 不同用户家目录不同4. 查看当前目录下文件5. 充分使用面向对象知识 REDMAE 1 用户登陆 2 3 1.查看用户目录文件 4 2.上传文 ...

  7. 【转载】Linux 文件系统的目录结构

    /bin 基础系统所需要的那些命令位于此目录,也是最小系统所需要的命令:比如 ls.cp.mkdir等命令:功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令.做为基础 ...

  8. [Chromium文档转载,第001章] Mojo Migration Guide

        For Developers‎ > ‎Design Documents‎ > ‎Mojo‎ > ‎ Mojo Migration Guide 目录 1 Summary 2 H ...

  9. SSAS 收藏

    1.多事实表 SQL实现和SSAS中MDX实现的差异 2.层次结构 3.MDX常用几种查询对比 4.一段话理解 MDX中的Select .轴.COLUMNS.ROWS 5.[转载]MSDN-MDX#0 ...

随机推荐

  1. 二叉搜索树的后序遍历序列 (java)

    import java.util.*; public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if( ...

  2. bzr: ERROR: No push location known or specified.

    出现这种错误,要先uncommit,然后拉带最新版本,再commit最后push

  3. SetupDiEnumDeviceInfo

    BOOLEANSetupDiEnumDeviceInfo(IN HDEVINFO DeviceInfoSet,IN DWORD MemberIndex,OUT PSP_DEVINFO_DATA Dev ...

  4. Java Thread系列(一)线程创建

    Java Thread系列(一)线程创建 Java 中创建线程主要有三种方式:继承 Thread.实现 Runnable 接口.使用 ExecutorService.Callable.Future 实 ...

  5. 使用junit单元测试SpringMvc

    对于有依赖关系的方法,junit测试会有些麻烦,可以用@before @after之类的创建数据库连接,然后进行测试,但是有些太麻烦了. 所以就使用一下这个:org.springframework.t ...

  6. [转]Android Parcelable和Serializable的区别

    本文主要介绍Parcelable和Serializable的作用.效率.区别及选择,关于Serializable的介绍见Java 序列化的高级认识. 1.作用 Serializable的作用是为了保存 ...

  7. Python 关于数组矩阵变换函数numpy.nonzero(),numpy.multiply()用法

    1.numpy.nonzero(condition),返回参数condition(为数组或者矩阵)中非0元素的索引所形成的ndarray数组,同时也可以返回condition中布尔值为True的值索引 ...

  8. firefox快速刷新error及解决办法

    问题: 测试发过来bug,说——频繁F5刷新页面,会闪现未加载完样式的页面:    开发用的Chrome,没发现这个问题,测试用的firefox,于是从浏览器的刷新加载机制方面搜索解决办法,没搜到,运 ...

  9. ramfs和tmpfs的区别

    简介 ramfs和tmpfs是在内存上建立的文件系统(Filesystem).其优点是读写速度很快,但存在掉电丢失的风险.如果一个进程的性能瓶颈是硬盘的读写,那么可以考虑在ramfs或tmpfs上进行 ...

  10. R语言中的四类统计分布函数

    R语言中提供了四类有关统计分布的函数(密度函数,累计分布函数,分位函数,随机数函数).分别在代表该分布的R函数前加上相应前缀获得(d,p,q,r).如: 1)正态分布的函数是norm,命令dnorm( ...