Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103593245
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-12 09:53:49

 来源:IBM developerWorks 中国网站    作者:Jason Dere

然后,对从 SQL 表达式模板产生的 SQL 表达式应用聚合,形成度量的 SQL 表达式:

SUM(T7.SALES)

  如果一个度量引用其他度量,那么在为它产生 SQL 表达式时,不能使用聚合函数来为嵌套的度量产生 SQL 表达式。如果当前度量有聚合函数,那么在为引用的任何度量产生 SQL 表达式时,这些度量的聚合函数不应该应用于 SQL 表达式模板。相反,应该只使用嵌套度量的 SQL 表达式模板产生的表达式。

  作为示例,表 13 中是为 Total Expense 度量产生的 SQL 表达式:

表 13. Total Expense 度量
SQL 表达式模板 列、属性和度量的列表 聚合
{$$1} + {$$2} 度量:COGS (SALESFACT)
度量:ADVERTISING (SALESFACT)
SUM

Total Expense 引用另外两个度量,COGS (SALESFACT)ADVERTISING (SALESFACT)

表 14. COGS (SALESFACT) 度量
SQL 表达式模板 列、属性和度量的列表 聚合
{$$1} 列:CVSAMPLE.SALESFACT.COGS SUM


表 15. ADVERTISING (SALESFACT) 度量
SQL 表达式模板 列、属性和度量的列表 聚合
{$$1} 列:CVSAMPLE.SALESFACT.ADVERTISING SUM

  Total Expense 有一个聚合函数 SUM,所以这个聚合函数将应用于 SQL 表达式。在为 Total Expense 产生 SQL 表达式时,不使用嵌套度量(COGSADVERTISING)的聚合函数,因为聚合函数不能嵌套在其他聚合函数中。Total Expense 的 SQL 表达式是:

  SUM((T7.COGS) + (T7.ADVERTISING))

  如果 Total Expense 没有聚合函数,在这种情况下,就要使用 COGSADVERTISING 的聚合函数。Total Expense 的 SQL 表达式就会是:

  (SUM(T7.COGS)) + (SUM(T7.ADVERTISING))

表 16. 为 sales 事实的属性/度量产生的 SQL 表达式
属性/度量 产生的 SQL 表达式
  TIMEID (SALESFACT) T7."TIMEID"
STOREID (SALESFACT) T7."STOREID"
PRODUCTID (SALESFACT) T7."PRODUCTID"
Sales (SALESFACT) SUM(T7."SALES")
Total Expense SUM((T7."COGS") + (T7."ADVERTISING"))

阅读(728) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~