搜索
首页 电脑/网络 软件 系统软件

Oracle中使用SQLMODEL定义行间计算是怎么做的?

Oracle中使用SQLMODEL定义行间计算是怎么做的?

全部回答

2017-07-27

47 0
    通过将数个规则置于一个查询中,处理会更加高效,因为这减少了需要访问数据的次数。它还允许使用更为简洁的 SQL,以使开发人员的工作效率更高。从 SQL*Plus 会话中,执行以下脚本: @c:\wkdir\pos_sym。
  sql pos_sym。sql 脚本包含以下内容: SELECT SUBSTR(country,1,20) country, SUBSTR(prod,1,15) prod, year, salesFROM sales_view WHERE country IN ('Italy','Japan') MODEL RETURN UPDATED ROWS PARTITION BY (country) DIMENSION BY (prod, year) MEASURES (sale sales) RULES ( sales['Bounce', 2002] = sales['Bounce', year = 2001] , --positional notation: can insert new cell sales['Y Box', year>2000] = sales['Y Box', 1999], --symbolic notation: can update existing cell sales['2_Products', 2005] = sales['Bounce', 2001] + sales['Y Box', 2000] ) --positional notation: permits insert of new cells --for new productORDER BY country, prod, year/该示例数据没有超出 2001 年的值,因此所有涉及到 2002 年或之后的规则都要求插入新的单元格。
    对于此处定义的任何新产品名也是如此。在第三条规则中,2_Products 被定义为 2005 年的销售是 2001 年 Bounce 销售与 2000 年 Y Box 销售总和的产品。
   对于 2002 年的 Bounce,第一个规则将插入新的单元格,因为这是位置表示法。  对于 Y Box,第二个规则使用符号表示法,但是此处已经有了 2001 年的 Y Box 值,因此它将更新这些值。
  对于 2005 年的 2_Products,第三个规则是位置表示法,因此它可以插入新的单元格,您将在输出中看到这些新单元格。 在规则右侧使用多单元格引用 早先的示例只能在规则的左侧使用多单元格引用。
    如果要在规则右侧引用多个单元格,您可以在规则右侧使用多单元格引用,在这种情况下,需要对其应用聚合函数,以将它们转换为单一值。可以使用所有现有的聚合函数,包括 OLAP 聚合函数(逆分配函数、虚拟等级和分配函数等)、统计聚合函数以及用户定义的聚合函数。
   1。您希望预测 2005 年 Bounce 在意大利的销售比其在 1999 至 2001 年间的最大销售多 100。  为此,您需要在规则右侧使用 BETWEEN 子句来指定多个单元格,并通过 MAX() 函数将其聚合为单一值。
  

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报