结合webcast中老师的讲解,现在把基础语法应用通过几个案例应用如下:

一、维度的概念

上图中一个维度(Dimension):Region

改为度下有四个级别(Levels):country、province、city、county,他们属于层次集合(Hierarchy)

通过维度和级别我们可以定义一个元素(Member)如:

Levels(1).members(2)=china

Levels(2).members(3)=shanghai

二、维度建模

上图中时一个维度建立的模型(cube)

该图中包含四个维度(Dimension):时间、源、路线、度量方式值(Measure)

源维度中包含两个级别:东半球、西半球

级别西半球中包含两个成员:北美洲、南美洲

图中一个方框就是就是一个单元:上图中240的单元表示为:

(  Sorce.[EasternHemisphere].Africa,

Time.[2ndhalf].[4thquarter],

Route.Air,

Mesures.Packages

图中的元组即表示一连串的方框组成的长方形集合:

{(Time.[1sthalf].[1stquarter])}记住大括号不能去掉

元组集合就是有元组组合而成:

{

(Time.[1sthalf].[1stquarter]),

Time.[2ndhalf].[3rdquarter]

}

三、成员名称

上图中可以看出通过坐标值可以定义出每个成员的名称

比如图中黑色的成员名称:

(Products.Clothing,Measures.Units,Time.98)

这里面有个通用的技巧,就是可以根据一个成员名称追踪到旁边的成员

四、Mdx语法结构

和SQL语法结构类似,但是在实际应用中集(Set)往往会很长

来看一个Mdx查询语句,我们想查询MKAS集市中上海和北京在十三号和十四号的实际销售量

SELECT

{[Dim Region].[City].&[上海],[Dim Region].[City].&[北京]}

ON COLUMNS,

{[Dim Time].[Day Of Month].&[13],[Dim Time].[Day OfMonth].&[14]}

ON ROWS

FROM

[MKAS]

WHERE ([Measures].[Fact Ind Count])

这里面”于“&符号可以标记出其父级中的元素集合中的值也叫做元素值。

五、切片的定义

切片(Silce)是一种操作方法,基于Tuple,而非集合(set)

如上图中可以看出元组(Tuple)表示为

(0≤x≤5,1≤y≤3)

数据集(Set)

{0≤X≤1,2≤X≤3,4≤X≤5}

切片(Slice)

(X=1,Y=0)

Mdx和SQL的区别

引用维度的能力:SQL只能引用2个维度,MDX可以引用多个维度

创建查询的过程:SQL编写1个或多个表的查询,MDX编写对一个多维数据集的查询

Select子句:SQL定义查询的列布局,MDX定义几个轴维度

Where子句:SQL定义查询的行布局,筛选查询返回的数据,MDX将数据限定于特定维度/成员查询返回的数据切片

语法功能:SQL相对较弱,简单,MDX更强大,更复杂

结果集视觉形象:SQL直观,Mdx不直观

BI开发之——Mdx基础语法(2)(转至指尖流淌)的更多相关文章

  1. BI开发之——Mdx基础语法(转至指尖流淌)

    Mdx为MultiDimensional  Expressions的缩写,多维表达式,是标准的OLAP查询语言.在多数OLAPServer都提供Mdx支持,如Microsoft Sql Server ...

  2. SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

    原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...

  3. JSP开发中的基础语法

    JSP 语法 JSP开发中的基础语法. 脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达式,只要它们在脚本语言中是有效的. 脚本程序的语法格式: <% 代码片段 %> 或者 ...

  4. openresty开发系列15--lua基础语法4表table和运算符

    openresty开发系列15--lua基础语法4表table和运算符 lua中的表table 一)table (表)Table 类型实现了一种抽象的"关联数组".即可用作数组,也 ...

  5. openresty开发系列14--lua基础语法3函数

    openresty开发系列14--lua基础语法3函数 一)function (函数) 有名函数: optional_function_scope function function_name( ar ...

  6. openresty开发系列13--lua基础语法2常用数据类型介绍

    openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...

  7. Java 教程(开发环境配置+基础语法)

    Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.ora ...

  8. HTML 网页开发、CSS 基础语法——二.互联网原理

    1. 互联网的运行过程 ①用户通过输入网址,发送一个HTTP请求到服务器中去,服务器里面存储了程序员上传的所有网页文件. ② 服务器一旦接收到请求,就会将我们所有的相关网页文件,回传到客户端,通过HT ...

  9. SQL使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

    在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用.下面 ...

随机推荐

  1. C#应用视频教程1.1 Socket通信基础

    做Socket通信之前,我们首先要实现几个基本的功能 获取本机IP地址(如果我们要做Socket的服务器,肯定不希望用户每次填写本机IP地址,而是自动获取本机IP地址,这一点我们最好能做的比已有的软件 ...

  2. 使用 RDVTabBarController 制作底部凸起的 TabBar 笔记

    欢迎訪问我的个人博客http://mmoaay.photo/ 本文主要针对底部凸起的 TabBar 这样的特殊需求,不感兴趣的能够直接绕过- 近期做的一个项目须要底部凸起的 TabBar,效果例如以下 ...

  3. Android内存泄漏分析实战

    内存泄漏简单介绍 java能够保证当没有引用指向对象的时候,对象会被垃圾回收器回收.与c语言自己申请的内存自己释放相比,java程序猿轻松了非常多.可是并不代表java程序猿不用操心内存泄漏.当jav ...

  4. qs.js库 使用方法

    1.qs.js库说明 qs是一个url参数转化(parse和stringify)的js库. https://www.npmjs.com/package/qs 2.使用(以vue文件做示例) (1)基本 ...

  5. 〖Linux〗不重复启动某应用程序的脚本

    cmd="/home/scue/bin/ipclient $ipclient" exist=$(ps aux | grep -v 'grep' | grep "$cmd& ...

  6. Dao泛型设计和反射反型

    (1)DAO泛型设计:当二哥或多个类中有类似的方法时,可以将这些累死的方法提出到类中,形式一个泛型父类 (2)反射反型:在泛型父类中获取子类的具体类型的过程,叫反射反型 package cn.itca ...

  7. window.open()函数

    http://hi.baidu.com/gagahjt/blog/item/7b76e0dee61b20aecd11661c.html open函数详解: window.open("sUrl ...

  8. Windows7下搭建Android开发环境

    以后工作中要用到android开发,所以想搭建好开发环境,笔记本装的是win7 准备文件: 1 下载Android SDK http://code.google.com/android/downloa ...

  9. python --subprocess 范例

    范例1:查看ipconfig -all命令的输出,并将将输出保存到文件tmp.log中: import subprocess handle = open(r'd:\tmp.log','w') p=su ...

  10. Mybatis自动生成的配置实例

    一.目录 按照图片准备下面的东西吧,基础jar,数据链接库的jar. 二.generatorConfig.xml <?xml version="1.0" encoding=& ...