BI开发之——Mdx基础语法(2)(转至指尖流淌)
结合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)(转至指尖流淌)的更多相关文章
- BI开发之——Mdx基础语法(转至指尖流淌)
Mdx为MultiDimensional Expressions的缩写,多维表达式,是标准的OLAP查询语言.在多数OLAPServer都提供Mdx支持,如Microsoft Sql Server ...
- SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识
原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...
- JSP开发中的基础语法
JSP 语法 JSP开发中的基础语法. 脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达式,只要它们在脚本语言中是有效的. 脚本程序的语法格式: <% 代码片段 %> 或者 ...
- openresty开发系列15--lua基础语法4表table和运算符
openresty开发系列15--lua基础语法4表table和运算符 lua中的表table 一)table (表)Table 类型实现了一种抽象的"关联数组".即可用作数组,也 ...
- openresty开发系列14--lua基础语法3函数
openresty开发系列14--lua基础语法3函数 一)function (函数) 有名函数: optional_function_scope function function_name( ar ...
- openresty开发系列13--lua基础语法2常用数据类型介绍
openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...
- Java 教程(开发环境配置+基础语法)
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.ora ...
- HTML 网页开发、CSS 基础语法——二.互联网原理
1. 互联网的运行过程 ①用户通过输入网址,发送一个HTTP请求到服务器中去,服务器里面存储了程序员上传的所有网页文件. ② 服务器一旦接收到请求,就会将我们所有的相关网页文件,回传到客户端,通过HT ...
- SQL使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识
在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用.下面 ...
随机推荐
- 想控制GIF图片动画播放吗?试试gifffer.js
在线演示:http://www.gbtags.com/gb/demoviewer/3578/c6bec39a-61ae-4017-8e23-e0bc1eeb740f/example|index.htm ...
- iOS 线程操作库 PromiseKit
iOS 线程操作库 PromiseKit 官网:http://promisekit.org/ github:https://github.com/mxcl/PromiseKit/tree/master ...
- Python 面向对象编程基础
Python 面向对象编程基础 虽然Pthon是解释性语言,但是Pthon可以进行面向对象开发,小到 脚本程序,大到3D游戏,Python都可以做到. 一类: 语法: class 类名: 类属性,方法 ...
- javaSE知识点汇总
Java基础知识精华部分 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言 ...
- 模拟登陆百度 python
from time import sleep from selenium import webdriver driver = webdriver.Firefox() driver.get('http: ...
- 如何发布本地maven项目jar包部署到nexus私服?
首先在我们的pom里面描述我们要部署的地址: <distributionManagement> <repository> <id>release</id> ...
- Ubuntu下开启root登陆--并开启SSH登录验证
Ubuntu下开启root登陆亲手安装过Ubuntu的童鞋都知道,默认安装只会添加一个普通用户名和密码,而超级用户权限则是利用sudo命令来执行.在Ubuntu下使用root登陆或者在shell中用s ...
- Windows 开发之VC++垃圾清理程序软件
概述 本程序软件的主要实现垃圾文件清理的功能,即对指定的文件格式的临时文件或垃圾文件进行遍历.扫描.显示.删除清理等功能.在程序界面设计方面,对默认对话框重新自定义绘制,主要包括标题栏的重绘.对话框边 ...
- Android开发之Google Map
2013-07-03 Google Map 提供三种视图: 1. 传统的矢量地图,提供行政区域.交通以及商业信息等. 2. 不同分辨率的卫星照片,与Google Earth 基本一样. 3. 地形地图 ...
- Ubuntu中类似任务管理器的东西?
Ubuntu里面有没有类似windows中任务管理器的东西呢?怎么打开?谢谢!!! ================================ 检举| 2009-02-01 16:50提问者 ...