《Microsoft SQL Server 2008 MDX Step by Step》学习笔记二:理解元组(Tuples)
SQL Server 2008中SQL应用系列及BI笔记系列--目录索引
导读:本文介绍元数组(Tuples)的基础内容,已经了解的读者可以直接略过。
本文将包括以下内容:
■1、理解cube空间的概念。
■2、使用tuples从Cube中提取数据。
■3、使用多种语法引用层次结构成员(hierarchy members)。
本文所用数据库和所有源码,请到微软官网下载
1、N维空间(N-dimensional Space)和Cube空间
类似地,我们可以用(a1,a2,….,Ax)表示X维度的一个点。
2、使用Tuples访问数据
打开MDX查询编辑器窗口,输入
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar Year].[All Periods],
[Date].[Fiscal Year].[All Periods],
[Product].[Category].[Bikes],
[Product].[Subcategory].[Mountain Bikes],
[Measures].[Measures].[Reseller Sales Amount]
)
;
/*
$26,492,684.38
*/
上述语句中,包含五部分元组(Tuples)
改变下元组(Tuples),结果相同。
FROM[Chapter 3 Cube]
WHERE (
[Product].[Subcategory].[Mountain Bikes],
[Date].[Calendar Year].[All Periods],
[Date].[Fiscal Year].[All Periods],
[Product].[Category].[Bikes],
[Measures].[Measures].[Reseller Sales Amount]
)
;
/*
$26,492,684.38
*/
4、理解Cells
每一个Cell包含了Value和FORMATTED_VALUE
可以修改默认值
关于Cell属性,请看MSDN(http://msdn.microsoft.com/zh-cn/library/ms145573.aspx)
5、使用局部元组(Partial Tuples)
当度量成员被移走时,一个局部元组(Partial Tuples)被提交,AS检查第一个默认的成员,提供缺失度量,这些度量的属性的层次结构的默认成员是Reseller Sales Amount,该成员将被应用,元组变完整。
6、使用用户层次结构生成Tuples
理解User-Hierarchy转换
FROM[Chapter 3 Cube]
WHERE[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2003].[FY 2003]
;
/*
$12,000,247.33
*/
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar Year].[CY 2003],
[Date].[Fiscal Year].[FY 2003]
)
;
/*
$12,000,247.33
*/
FROM[Chapter 3 Cube]
WHERE[Date].[Calendar-To-Fiscal Year].[Fiscal Year].[FY 2003]
;
/*
$15,921,423.19
*/
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar Year].[CY 2002],
[Date].[Fiscal Year].[FY 2003]
)
;
/*
$15,921,423.19
*/
SELECT
FROM[Chapter 3 Cube]
WHERE[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2002]
;
/*
$24,144,429.65
*/
SELECT
FROM[Chapter 3 Cube]
WHERE[Date].[Calendar Year].[CY 2002]
;
/*
$24,144,429.65
*/
避免引用冲突
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2002],
[Date].[Fiscal Year].[FY 2003]
)
;
/*
$15,921,423.19
*/
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2002].[FY 2003],
[Date].[Fiscal Year].[FY 2003]
)
;
/*
$15,921,423.19
*/
而下面的引用是冲突的!
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2002].[FY 2003],
[Date].[Fiscal Year].[FY 2002]
)
;
/*
(null)
*/
本文对tuples有了一个初步的介绍,下文将关注MDX基础的另一个概念:结果集(Sets)。
参考资源:
1、MDX官方教程(http://msdn.microsoft.com/zh-cn/library/ms145506.aspx)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2009-06-12 忍不住了,我来说两句,从一道面试题说起