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. BaseSEOPage统一设置网站SEO

    代码: public class BaseSeoPage : System.Web.UI.Page { protected override void OnPreLoad(EventArgs e) { ...

  2. Linux中如何克隆KVM虚拟机

    转载:https://yq.aliyun.com/articles/64860 作者 digoal 日期 2016-11-11 标签 Linux , KVM , 虚拟化 , 克隆 背景 当需要批量部署 ...

  3. 超赞!UX写手必备技能

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 今天,小编非常荣幸能与大家一起分享一些优秀UX 写手必备的成功技能: 1.开篇抓住用户的心 MBE曾 ...

  4. centos7下载自定义仓库的镜像设置方法

    1.vim /usr/lib/systemd/system/docker.service Description=Docker Application Container Engine Documen ...

  5. spark yarn 集群提交kafka代码

    配置好hadoop的环境,具体根据http://blog.csdn.net/u010638969/article/details/51283216博客所写的进行配置. 运行start-dfs.sh启动 ...

  6. 虚拟机CentOS6.5搭建samba服务器实现文件共享

    Samba是SMB的一种实现方法,主要用来实现Linux系统的文件和打印服务.Linux用户通过配置使用Samba服务器可以实现与Windows用户的资源共享:而守护进程smbd和nmbd是Samba ...

  7. 引入jQuery

    用于测试和开发(未压缩,是可读的代码)  uncompressed, 用于实际的网站中,已被精简和压缩.  minified   jQuery 1.xjQuery Migrate  过渡版jQuery ...

  8. .NET基础 (11)类型的基类System.Object

    类型的基类System.Object1 是否存在不继承自System.Object类型的类2 在System.Object中定义的三个比较方法有何异同3 如何重写GetHashCode方法 类型的基类 ...

  9. git 创建管理远程分支

      1.远程分支就是本地分支push到服务器上的时候产生的.比如master就是一个最典型的远程分支(默认). 1 $: git push origin master 除了master之外,我们还可以 ...

  10. Appium之启用手机桌面APP的多种方法

    方法一: 其实之前的随笔 Appium之连续启动多个应用(APP)中已经介绍了可以用appium下的start_activity()方法来启动一个应用,那这里就不再说明啦. 方法二: 因为有时用sta ...