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开发人员必备基础知识
在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用.下面 ...
随机推荐
- 如何获取浏览器URL中查询字符串的参数?
如何获取浏览器URL中查询字符串的参数? 想要知道怎样解决这个问题,首先我们先认识一下Location对象. Location对象包含了当前页面与位置(url)相关的信息 URL示例:http://w ...
- 微信小程序 - 为何setData到页面上有的加分号
Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { let _page = t ...
- MySQL截取字符串函数方法
函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...
- excel 如何为列添加指定内容(字符串)
excel 如何为列添加指定内容(字符串) CreateTime--2018年5月26日17:52:32 Author:Marydon 1.情景展示 D列的值需要获取B列的值并且在后面统一加上12 ...
- window 10下 MySql5.7压缩包安装
步骤如下: 1. 解压缩到某位置, 在其根目录下 新建data空目录, 新建my.ini,内容如下: [mysql] default-character-set=utf8 [mysqld] port ...
- Makefile之大型工程项目子目录Makefile的一种通用写法
管理Linux环境下的C/C++大型项目,如果有一个智能的Build System会起到事半功倍的效果,本文描述Linux环境下大型工程项目子目录Makefile的一种通用写法,使用该方法,当该子目录 ...
- js中ip地址与整数的相互转换
转载地址 //IP转成整型function _ip2int(ip) { var num = 0; ip = ip.split("."); num = Number ...
- 【CI3.1】CI框架简单使用方法
CI框架简单使用方法 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中的方法 ...
- (四)hibernate关联映射之——一对多映射
0. 映射分四种类型: 一对多 多对一 一对一 多对多 前两者最常用 1.单向一对多关联 1.1 如何在JAVA和数据库中表示一对多的关系. 2.多对一关联 以学生对应班级来解释 步骤(1)创建 ...
- 【LeetCode】94. Binary Tree Inorder Traversal (3 solutions)
Binary Tree Inorder Traversal Given a binary tree, return the inorder traversal of its nodes' values ...