`

oracle model子句学习笔记

阅读更多

      Model子句是在Oracle数据库10g版本中引入的,提供了一个很好的替代电子表格的方法。通过Model子句,可以使用SQL语句中的一些很强大的功能,如聚合、并行、以及多维、多变量分析。如果你喜欢使用excel的电子表格来进行公式计算,你同样也会乐于使用model子句。由于model子句是SQL语言应用的一个扩展,其可扩展性是很强的,近似于oracle数据库的可扩展性。超过几百万行数据的多维、多变量计算,如果不是10亿级数据量的话,可以很容易地通过model子句来实现,而电子表格就不行。同时,很多数据库特性如对象分区以及并行执行都可以在model子句中高效地应用,从而进一步提高了可扩展性。传统的SQL语句与model子句的最核心区别在于model子句支持跨行引用,多单元格引用以及单元格聚合。

 

语法如下:

MODEL
[<global reference options>]
[<reference models>]
[MAIN <main-name>]
  [PARTITION BY (<cols>)]
  DIMENSION BY (<cols>)
  MEASURES (<cols>)
  [<reference options>]
  [RULES]  <rule options>
  (<rule>, <rule>,.., <rule>)
  <global reference options> ::= <reference options> <ret-opt>
   <ret-opt> ::= RETURN {ALL|UPDATED} ROWS
  <reference options> ::=
  [IGNORE NAV | [KEEP NAV]
  [UNIQUE DIMENSION | UNIQUE SINGLE REFERENCE]
  <rule options> ::=
  [UPDATE | UPSERT | UPSERT ALL]
  [AUTOMATIC ORDER | SEQUENTIAL ORDER]
  [ITERATE (<number>)  [UNTIL <condition>]]
  <reference models> ::= REFERENCE ON <ref-name> ON (<query>)
  DIMENSION BY (<cols>) MEASURES (<cols>) <reference options>
 

      CV() 函数是一个非常强大的工具,它可以高效地进行规则创建。CV() 用于规则的右侧,以复制左侧指定的当前维度值。对于左侧规范引用多个单元格来说,它非常有用。用关系数据库的概念来理解,该函数类似于连接操作。CV() 允许使用非常灵活的表达式。例如,通过从 CV(year) 值进行减法运算,可以引用数据集中的其他行。如果您的单元格引用中有表达式“CV(year) -2”,您两年前就可以访问数据。CV() 函数通常作为单元格引用的一部分使用,但是也可以在单元格引用外部作为独立的表达式元素。

 

例如:

RULES (
   sales['Bounce', year BETWEEN 1995 AND 2002] =
   sales['Mouse Pad', cv(year)] +
   0.2 * sales['Y Box', cv(year)]
)

 

     当上述规则的左侧引用单元格 Bounce 和 1999 时,右侧表达式将如下所示: sales['Mouse Pad', 1999] + 0.2 * sales['Y Box', 1999]

     同样,当左侧引用单元格 Bounce 和 2000 时,右侧表达式将为: sales['Mouse Pad', 2000] + 0.2 * sales['Y Box', 2000]

 

具体用法参见:http://blog.csdn.net/wh62592855/article/details/4783021

 

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记是李兴华老师编写的Oracle从入门到精通的学习笔记,涵盖了 Oracle 的多表查询、连接、组函数和分组统计等知识点。在本篇笔记中,李兴华老师详细介绍了多表查询的基本语法、左右连接...

    Oracle学习笔记.pdf

    以下是对Oracle学习笔记中提到的一些关键知识点的详细解释: 1. **SQL执行顺序**: SQL语句的执行顺序是:`FROM` -&gt; `WHERE` -&gt; `SELECT` -&gt; `GROUP BY` -&gt; `HAVING` -&gt; `ORDER BY`。首先从`FROM`子句开始,确定...

    Oracle超详细学习笔记

    ### Oracle超详细学习笔记 #### 一、基本查询与数据操作 ##### 1. 最简单的查询 - **命令示例**: ```sql SELECT * FROM employees; DESC employees; SET LINESIZE 600; SET PAGESIZE 50; ``` - **解释**: ...

    ORACLE经典学习笔记

    ### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...

    oracle 个人学习笔记

    以下是对Oracle数据库一些基础知识的详细解释,主要基于提供的个人学习笔记内容。 **第一节:数据库管理** 1. **创建用户**:`CREATE USER`命令用于创建新的数据库用户,如`CREATE USER username IDENTIFIED BY ...

    oracle pl的学习笔记

    标题中提到的“oracle pl的学习笔记”指的是对Oracle PL/SQL(Procedural Language/SQL)的学习笔记。PL/SQL是Oracle数据库中用于存储过程、函数、触发器和游标编程的一种过程化SQL语言的扩展。学习PL/SQL可以帮助...

    Mastering_Oracle_SQL学习笔记

    在深入探讨《Mastering Oracle SQL学习笔记》的内容之前,我们先理解一下这门课程的核心目标:帮助初学者更好地掌握SQL语言中的关键概念和操作,尤其是针对Oracle数据库的特性。这包括了SQL语句的构建、数据筛选、...

    oracle学习笔记-入门基础

    最后,基于函数的索引用于处理在WHERE子句中包含函数或表达式的查询。这种索引允许对计算结果进行索引,例如基于算术表达式、PL/SQL函数等。这可以提高含有复杂计算的查询的性能,但需要注意的是,不是所有函数都能...

    oracle管理员学习笔记

    ### Oracle管理员学习笔记知识点解析 #### 一、Where子句详解 在Oracle数据库管理与查询中,`WHERE`子句是SQL语句中至关重要的部分,用于筛选满足特定条件的数据行。以下是对`WHERE`子句中关键概念的深入解析: #...

    Oracle_SQL学习笔记

    以上是Oracle SQL学习笔记中涵盖的部分核心概念,这些知识对于有效管理Oracle数据库、提升查询效率和确保数据一致性至关重要。在实际应用中,还需要结合具体业务需求和数据库设计进行灵活运用。

    Oracle查询操作的学习笔记

    ### Oracle查询操作学习笔记知识点详解 #### 一、Oracle用户管理与权限分配 - **创建用户**:在Oracle中创建用户的基本语法为`CREATE USER username IDENTIFIED BY password`。例如,`CREATE USER xiaoming ...

    Oracle 10g sql 学习笔记

    Oracle 10g SQL 学习笔记涵盖了Oracle数据库的基础知识,包括版本信息、数据库系统特点、关系型数据库结构、SQL语言、操作环境以及常见的数据库操作。以下是对这些知识点的详细说明: 1. **Oracle 9i基础知识**: ...

    Oracle_SQL学习笔记.doc

    这些是Oracle SQL学习中的一些基础和进阶知识点,它们对于高效地管理Oracle数据库至关重要。理解并熟练掌握这些概念,可以帮助你编写更高效、更稳定的SQL语句,优化数据库性能,并确保数据的一致性和完整性。

    Oracle中使用SQL MODEL定义行间计算

    Oracle中的SQL MODEL子句是一种强大的工具,用于在数据库内执行复杂的行间计算,它...通过学习和熟练掌握MODEL子句,用户可以更高效地管理和分析数据,优化业务流程,同时避免了数据导入导出带来的额外开销和潜在错误。

    oracle11gR2学习笔记

    这些只是Oracle 11g R2学习笔记中的部分内容,实际学习和使用中还会涉及更多如索引、触发器、存储过程、事务管理、性能优化等复杂主题。对于深入理解和掌握Oracle数据库,建议进一步阅读官方文档和其他专业资料,...

    oracle 学习笔记

    在学习Oracle数据库及SQL时,需要掌握以下几个关键知识点: 一、数据库介绍 1. 数据库是存储、管理和处理大量数据的系统,表是存储数据的基本单位。 2. 数据库标准语言主要指的是SQL(Structured Query Language)...

    ORACLE_SQL学习笔记

    在学习Oracle SQL时,我们需要掌握各种关键概念和语法,以便高效地进行数据查询、更新和管理。以下是一些核心知识点: 1. **并行查询**:并行查询是提高大数据处理效率的一种策略。通过`ALTER SESSION ENABLE ...

    oracle学习笔记

    从给定的文件信息来看,这是一份关于Oracle学习的手册,主要涵盖了Oracle的基础知识,包括OLAP与OLTP的概念,以及对索引的详细解释。以下是对这些知识点的深入探讨: ### ORACLE OLAP与OLTP介绍 #### 1.1.1 什么是...

Global site tag (gtag.js) - Google Analytics