Debug客栈
做一个爱分享的程序猿
Debug客栈
数据仓库与数据挖掘-多维数据操作

数据立方体如图所示:

https://www.debuginn.cn/wp-content/uploads/2019/03/xyz1.jpg


在数据立方体上的操作有:切片、切块、旋转、上卷和下钻。

切片和切块(Slice and Dice)

在数据立方体的某一维度上选定一个维成员的操作叫切片,而对两个或多个维执行选择则叫做切块。下图逻辑上展示了切片和切块操作:

https://www.debuginn.cn/wp-content/uploads/2019/03/xyz2.jpg

这两种操作的 SQL 模拟语句如下,主要是对 WHERE 语句做工作。

旋转(Pivot)

旋转就是指改变报表或页面的展示方向。对于使用者来说,就是个视图操作,而从 SQL 模拟语句的角度来说,就是改变 SELECT 后面字段的顺序而已。下图逻辑上展示了旋转操作:

https://www.debuginn.cn/wp-content/uploads/2019/03/xyz3.jpg

上卷和下钻(Rol-up and Drill-down)

上卷可以理解为”无视”某些维度;下钻则是指将某些维度进行细分。下图逻辑上展示了上卷和下钻操作:

https://www.debuginn.cn/wp-content/uploads/2019/03/xyz4.jpg

这两种操作的 SQL 模拟语句如下,主要是对 GROUP BY 语句做工作。

作业要求:

  • 在 SQL SERVER2012 中创建数据库,内含四张表,可参考的表设计如下图。
  • 然后基于以上的数据库表进行切片、切块、旋转、上卷和下钻。
  • 将自行建立的四张表和在表上进行的多维操作(切片、切块、旋转、上卷和下钻)。
https://www.debuginn.cn/wp-content/uploads/2019/03/xyz5-1024x486.jpg

创建表结构及插入模拟数据

此数据是从SQL Server2012版本数据库导出,仅供借鉴与参考

销售分析表结构

/****** Object:  Table [dbo].[analysisTable]    Script Date: 2019/3/11 15:33:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[analysisTable](
	[timeID] [tinyint] NOT NULL,
	[productID] [tinyint] NOT NULL,
	[areaID] [tinyint] NOT NULL,
        [number] [int] NOT NULL, 
        [money] [int] NOT NULL ) ON [PRIMARY] GO 
	

地区维表表结构

CREATE TABLE [dbo].[areaTable](
	[areaID] [tinyint] IDENTITY(1,1) NOT NULL,
	[areaCou] [varchar](200) NOT NULL,
	[areaPro] [varchar](50) NOT NULL,
	[areaCity] [varchar](50) NOT NULL,
	[areaDoor] [varchar](200) NOT NULL,
 CONSTRAINT [PK_areaTable] PRIMARY KEY CLUSTERED 
(
	[areaID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

产品维表表结构

CREATE TABLE [dbo].[productTable](
	[productID] [tinyint] IDENTITY(1,1) NOT NULL,
	[productType] [nvarchar](50) NOT NULL,
	[productName] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_productTable] PRIMARY KEY CLUSTERED 
(
	[productID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

时间维表表结构

CREATE TABLE [dbo].[timeTable](
	[timeID] [tinyint] IDENTITY(1,1) NOT NULL,
	[timeYear] [varchar](50) NOT NULL,
	[timeMonth] [varchar](50) NOT NULL,
 CONSTRAINT [PK_timeTable] PRIMARY KEY CLUSTERED 
(
	[timeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

多维数据操作

切片操作

操作SQL语句

select timeTable.timeMonth, productTable.productName, areaTable.areaDoor 
from analysisTable, timeTable, productTable, areaTable 
where
analysisTable.timeID = timeTable.timeID AND
analysisTable.productID = productTable.productID AND
analysisTable.areaID = areaTable.areaID AND 
analysisTable.productID = 1;

操作结果查询图

https://www.debuginn.cn/wp-content/uploads/2019/03/xyz10.jpg
赞赏
本文链接:https://www.debuginn.cn/2446.html
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可,转载请保留文章链接
Debug客栈  |  Debug客栈引导页  |  Debug客栈交流群  |  赞助本站  |  博主微博  |  音乐下载器

发表评论

textsms
account_circle
email

Debug客栈

数据仓库与数据挖掘-多维数据操作
数据立方体如图所示: 在数据立方体上的操作有:切片、切块、旋转、上卷和下钻。 切片和切块(Slice and Dice) 在数据立方体的某一维度上选定一个维成员的操作叫切片,而对…
扫描二维码继续阅读
2019-03-11
文章日历
2019年七月
« 6月    
1234567
891011121314
15161718192021
22232425262728
293031  
近期评论
统计数据
  • 1
  • 289
  • 9,317
  • 4,739
  • 2
  • 284
  • 190
  • 2019年7月13日
本站存活