【主页】   【登陆论坛】   【免费注册会员】   【关闭窗口】 
进入ooReport网上直报数据分析
 您的位置:首页->软件论坛 -> 产品/厂家->ooReport网上直报
搜索:
站内导航
软件技术论坛
软件采购区
软件供应区
项目外包项目区
软件下载频道
IT软件公司速查手册
企业招聘专栏
人才求职
Flash动画游戏
音乐欣赏
域名注册/主机托管
产品/厂家
EtCell报表控件
ATGrid报表控件
ooReport网上直报
数据库报表
ooReport网上直报 Top10
北京统计信息直报网
厦门电子地方税务局办税服务中心--网上表报报送操作手册
山东省卫生厅远程统计直报系统正式运行
山东省统计局
航空机票预订系统 可行性分析报告
ooReport网上报表系统
乡镇企业信息统计直报网
企业所得税行业预警税负率
ooReport网上直报/数据分析平台解决方案
国家数据库上报工具《学生体质健康标准智能服务系统》培训资料
ooReport网上直报 最新10
异地财务管理系统实施应用的基本解决方案
集团企业财务控制的信息化之道
用友助力中建国际实现集团财务管理
中科国际集团企业财务监控系统
集团企业远程财务监控解决方案
财务数据采集系统,ooReport平台
一步一步学习sqlserver BI--ETL设计
一步一步学习sqlserverBI--多维数据库建立
快速理解OLAP的多维数据结构
第三代数据库与多维数据库
主  题: 使用聚合函数
发布日期: 2008/6/9 2:20:23 昂利万报表打印控件
作  者: request(我有问题)
问题分数: 0
回 复 数: 0
人气指数: 2314点
信 誉 值: 100
等  级:
所属社区: 产品/厂家 -> ooReport网上直报
置顶 ooReport网上报表系统精华
置顶 EtCell报表控件,报表制作、web报表、插件、报表开发、网络报表、报表工具精华
置顶 ooReport网上直报/数据分析平台解决方案精华
置顶 ooReport网上直报/数据分析系统平台演示及其相关文件下载精华
置顶 10位程序员眼中的2007:寻找软件开发利器精华
置顶 我国宏观税负分析精华
使用聚合函数

本主题包含在度量值中使用聚合函数(SumMinMaxCountDistinct Count)的示例。查询示例与下列示例基于相同的多维数据集单元,以便可以查看更改函数的结果。

这些示例使用的多维数据集有一个“销售额”度量值,它基于 Sales 事实数据表中的 Sales_Amount 列。此多维数据集有三个维度:

  • “客户”,基于表 Customers 并包含下列从最高到最低的级别:
    • (全部)
    • Customer_Name 作为成员名列而 Customer_ID 作为成员键列的客户
  • “零售店”,基于表 Retail_Stores 并包含下列从最高到最低的级别:
    • (全部)
    • Retail_Store_Name 作为成员名列而 Retail_Store_ID 作为成员键列的零售店
  • “产品”,基于表 Products 并包含下列从最高到最低的级别:
    • (全部)
    • Product_Category 作为成员名列和成员键列的产品类别
    • Product_Name 作为成员名列而 Product_ID 作为成员键列的产品

有关维度和级别的详细信息,请参阅“维度”和“级别”。

此处显示了多维数据集的架构。

此处显示了多维数据集的事实数据表 Sales

Transaction_ID Customer_ID Product_ID Retail_Store_ID Sales_ Amount

1

1

1

1

300

2

1

1

1

250

3

1

1

1

250

4

1

2

1

100

5

1

4

1

700

6

2

1

2

290

7

2

2

2

90

8

2

3

3

510

9

3

1

4

350

10

3

2

3

110

11

4

3

4

550

12

4

4

4

750

此处显示了多维数据集的一个维度表 Customers

Customer_ID Customer_Name Customer_Address_ Line_1 Customer_Address_ Line_2

1

A

1 A Street

Aville, AA 55555

2

B

2 B Street

Bville, BB 55555

3

C

3 C Street

Cville, CC 55555

4

D

4 D Street

Dville, DD 55555

此处显示了多维数据集的另一个维度表 Retail_Stores

Retail_ Store_ID Retail_Store_ Name Retail_Store_ Address_Line_1 Retail_Store_ Address_Line_2

1

A

1 A Avenue

Atown, AA 55555

2

B

2 B Avenue

Btown, BB 55555

3

C

3 C Avenue

Ctown, CC 55555

4

D

4 D Avenue

Dtown, DD 55555

此处显示了多维数据集的最后一个维度表 Products

Product_ID Product_Name Product_Description Product_Category

1

A

aaaa aaaa aaaa

AB

2

B

bbbb bbbb bbbb

AB

3

C

cccc cccc cccc

CD

4

D

dddd dddd dddd

CD

如果度量值的“聚合函数”属性值为 Sum,则通过将度量值源列中仅来自定义此单元的成员行以及这些成员后代的行中的值相加,计算多维数据集单元的度量值。

下列示例返回表示累积销售额的值。

A:查询一个原子多维数据集单元

对客户 A、零售店 A 和产品 A 的“销售额”度量值的查询返回 800。

B:查询一个非原子多维数据集单元

对客户 A、零售店 A 和产品类别 AB 的“销售额”度量值的查询返回 900。

C:查询多个多维数据集单元

对“销售额”度量值的查询在 x 轴上显示每个零售店,在 y 轴上显示产品类别下的嵌套产品,并且按“所有客户”进行切片。它返回以下数据集。

所有零售店

A

B

C

D

所有产品

4250

1600

380

620

1650

AB

1740

900

380

110

350

A

1440

800

290

350

B

300

100

90

110

CD

2510

700

510

1300

C

1060

510

550

D

1450

700

750

如果度量值的“聚合函数”属性值为 Min,则通过以下方式计算多维数据集单元的度量值:采用度量值源列中仅来自义此单元的成员行以及这些成员后代的行中的最低值。

下列示例返回表示最低销售价格的值。

A:查询一个原子多维数据集单元

对客户 A、零售店 A 和产品 A 的“销售额”度量值的查询返回 250。

B:查询一个非原子多维数据集单元

对客户 A、零售店 A 和产品类别 AB 的“销售额”度量值的查询返回 100。

C:查询多个多维数据集单元

对“销售额”度量值的查询在 x 轴上显示每个零售店,在 y 轴上显示产品类别下的嵌套产品,并且按“所有客户”进行切片。它返回以下数据集。

所有零售店

A

B

C

D

所有产品

90

100

90

110

350

AB

90

100

90

110

350

A

250

250

290

350

B

90

100

90

110

CD

510

700

510

550

C

510

510

550

D

700

700

750

如果度量值的“聚合函数”属性值为 Max,则通过以下方式计算多维数据集单元的度量值:采用度量值源列中仅来自定义此单元的成员行以及这些成员后代的行中的最高值。

下列示例返回表示最高销售价格的值。

A:查询一个原子多维数据集单元

对客户 A、零售店 A 和产品 A 的“销售额”度量值的查询返回 300。

B:查询一个非原子多维数据集单元

对客户 A、零售店 A 和产品类别 AB 的“销售额”度量值的查询返回 300。

C:查询多个多维数据集单元

对“销售额”度量值的查询在 x 轴上显示每个零售店,在 y 轴上显示产品类别下的嵌套产品,并且按“所有客户”进行切片。它返回以下数据集。

所有零售店

A

B

C

D

所有产品

750

700

290

510

750

AB

350

300

290

110

350

A

350

300

290

350

B

110

100

90

110

CD

750

700

510

750

C

550

510

550

D

750

700

750

如果度量值的“聚合函数”属性值为 Count,则通过以下方式计算多维数据集单元的度量值:将度量值源列中仅来自定义此单元的成员行以及这些成员后代的行中的值个数进行相加。

下列示例返回表示销售事务数的值。

A:查询一个原子多维数据集单元

对客户 A、零售店 A 和产品 A 的“销售额”度量值的查询返回 3。

B:查询一个非原子多维数据集单元

对客户 A、零售店 A 和产品类别 AB 的“销售额”度量值的查询返回 4。

C:查询多个多维数据集单元

对“销售额”度量值的查询在 x 轴上显示每个零售店,在 y 轴上显示产品类别下的嵌套产品,并且按“所有客户”进行切片。它返回以下数据集。

所有零售店

A

B

C

D

所有产品

12

5

2

2

3

AB

8

4

2

1

1

A

5

3

1

1

B

3

1

1

1

CD

4

1

1

2

C

2

1

1

D

2

1

1

如果度量值的“聚合函数”属性值为 Distinct Count,则通过以下方式计算多维数据集单元的度量值:将度量值源列中仅来自定义此单元的成员行以及这些成员后代的行中的唯一值个数进行相加。

“聚合函数”属性值为 Distinct Count 的度量值称为非重复计数度量值。非重复计数度量值可以用于对维度的最低级别成员在事实数据表中的出现次数进行计数。由于计数具有非重复性,因此,如果某个成员出现多次,则仅对此成员进行一次计数。

非重复计数度量值通常用于确定对于某个维度的每个成员,另一维度有多少不同的最低级别成员共享事实数据表中的。例如,在“销售额”多维数据集中,对于每个客户和客户组,购买了多少不同的产品?(即,对于“客户”维度的每个成员,“产品”维度有多少不同的最低级别成员共享事实数据表中的行?)或者,例如在“Internet 站点访问”多维数据集中,对于每个站点访问者和站点访问者组,访问了 Internet 站点上有多少不同的页?(即,对于“站点访问者”维度的每个成员,“页”维度有多少不同的最低级别成员共享事实数据表中的行?)在上述每个示例中,第二个维度的最低级别成员由非重复计数度量值进行计数。

此类分析无需限制为两个维度。事实上,非重复计数度量值可以由多维数据集中的任何维度组合进行分隔和切片,这些维度组合包括具有计数成员的维度。

对成员进行计数的非重复计数度量值基于事实数据表中的外键列。(即,度量值的“源列”属性标识此列。)此列联接标识由非重复计数度量值进行计数的成员的维度表列。

常规多维数据集在使用非重复计数度量值时存在限制。一个常规多维数据集中只允许使用一个非重复计数度量值,并且仅当常规多维数据集不包含具有自定义汇总运算符或自定义汇总公式的维度时,才允许使用此度量值。但是,虚拟多维数据集不存在这些限制。虚拟多维数据集可以使用多个非重复计数度量值,并且还可以将自定义汇总运算符和自定义汇总公式与非重复计数度量值一起使用。

由于非重复计数度量值具有非累加性,因此,非重复计数度量值的存在大大限制了 Microsoft(R) SQL Server(TM) 2000 Analysis Services 预聚合多维数据集的功能。因此,建议将每个非重复计数放在其自己的多维数据集中,而不与其他度量值放在一起。然后,可以将这些具有非重复计数度量值的多维数据集与虚拟多维数据集中的其他多维数据集联接起来,该虚拟多维数据集能够有效管理所有的度量值。

注意:
如果多维数据集使用非重复计数度量值,则会将整个多维数据集视为具有非累加性。非累加性多维数据集不支持动态创建成员,因此,如果在非累加性多维数据集中使用可动态创建成员的 MDX 函数(如 VisualTotals),则会返回错误。这还会影响其他功能,例如,在涉及动态创建成员的维度安全性中启用直观合计。

下列示例返回表示具有唯一销售价格的销售事务数的值。

A:查询一个原子多维数据集单元

对客户 A、零售店 A 和产品 A 的“销售额”度量值的查询返回 2。

B:查询一个非原子多维数据集单元

对客户 A、零售店 A 和产品类别 AB 的“销售额”度量值的查询返回 3。

C:查询多个多维数据集单元

对“销售额”度量值的查询在 x 轴上显示每个零售店,在 y 轴上显示产品类别下的嵌套产品,并且按“所有客户”进行切片。它返回以下数据集。

所有零售店

A

B

C

D

所有产品

11

4

2

2

3

AB

7

3

2

1

1

A

4

2

1

1

B

3

1

1

1

CD

4

1

1

2

C

2

1

1

D

2

1

1


 

【登陆论坛】   




【ooReport网上直报/数据分析系统平台】

版权所有【中国IT软件知识库/大中华软件交易网】© 2004-2005 鲁ICP备05026886号
电话:0531-69952003,69952005 高小姐 Email:避免Email骚扰