热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle中MODEL子句的再探

oracle中MODEL子句的再探model的语法如下:MODEL[<globalreferenceoptions>][<referencemodels>][MAIN<main-name>][PARTITIONBY(<cols>)]DIMENSIONBY(<cols

oracle中MODEL子句的再探
 
model的语法如下:
 
MODEL
[]
[]
[MAIN ]
  [PARTITION BY ()]
  DIMENSION BY ()
  MEASURES ()
  []
  [RULES]  
  (, ,.., )
  www.2cto.com  
  ::=
    ::= RETURN {ALL|UPDATED} ROWS
  ::=
  [IGNORE NAV | [KEEP NAV]
  [UNIQUE DIMENSION | UNIQUE SINGLE REFERENCE]
  ::=  www.2cto.com  
  [UPDATE | UPSERT | UPSERT ALL]
  [AUTOMATIC ORDER | SEQUENTIAL ORDER]
  [ITERATE ()  [UNTIL ]]
  ::= REFERENCE ON ON ()
  DIMENSION BY () MEASURES ()
 
先解释一下关键字:
MODEL 标示字。
RETURN {ALL|UPDATED} ROWS 返回的结果集是否只包含修改或新增的记录,默认是ALL。
MAIN 当有引用MODEL自己时,标示以下条件是主MODEL的条件。
PARTITION BY 按参数中的列分组,之后的运算都是分组进行的;参数可以是表达式,但是必须有别名。
DIMENSION BY 声明各分组中的维度字段,相当于多维键值对的建,字段值即键;参数可以是表达式,但是必须有别名。
MEASURES 声明各分组中的指标字段,即键值对中的值;参数可以是表达式,但是必须有别名。
IGNORE NAV|KEEP NAV 替换null|保留null,0替换数组,空格替换字符,01-JAN-2001 替换日期,null替换其他,默认是KEEP NAV 。
UNIQUE DIMENSION|UNIQUE SINGLE REFERENCE 组内维度唯一|右侧引用唯一,默认是UNIQUE DIMENSION,右侧引用唯一的另一个区别是可能更新多个单元,因为左侧单元可能不唯一。
RULES [UPDATE|UPSERT|UPSERT ALL] 指标计算规则,更新|更新和简单插入|更新和复杂插入,默认是UPSERT 。
AUTOMATIC ORDER|SEQUENTIAL ORDER 指标计算的顺序,逻辑依赖顺序|书写顺序,默认是SEQUENTIAL ORDER 。
ITERALTE(N) [UNTIL(C)] 重复N次的计算,直到满足C的条件退出。
REFERENCE name ON (select子句) 维度、指标定义,内嵌子MODEL,主MODEL中使用name引用。
 
UPDATE 只更新已有单元,不存在则无效果。
UPSERT 在上面的基础上,如果左侧单元是以位置引用的话,则不存在就插入;FOR也是位置引用,但是更新的单元为FOR列表和其他维度的交叉乘集;左侧单元使用ANY引用,不会产生新单元,ANY的意思是IS NULL OR IS NOT NULL。  www.2cto.com  
UPSERT ALL 在上面的基础上,左侧单元可以使用IN,ANY等谓词。
 
UPSERT的执行过程:
1、找出左侧单元的逻辑引用,谓词也是逻辑引用。
2、计算出逻辑引用的笛卡尔积集合。
3、和位置引用一起得出需要运算的单元集。
4、根据RULE规则更新或新增记录。
 
指标运算:
可以使用自带的一些函数,当前维度值可以使用CV(),只能用在单元引用,如果是外面则必须加上维度名。
维度为ANY、FOR、BETWEEN等时,可以在单元后面加上ORDER BY 维度名,固定单元计算的顺序。
右侧表达式可以有分析函数,聚合函数等。
 
 
 
作者 hulubo

推荐阅读
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文深入解析了宋代著名诗人刘克庄的《郊游》,探讨其诗歌中的自然景物描写与情感表达,揭示诗人的内心世界。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文介绍了如何在Python中使用join()方法将列表中的元素连接成一个字符串。join()方法允许用户指定分隔符,从而灵活地生成所需格式的字符串。此外,我们还将探讨一些实际应用中的注意事项和技巧。 ... [详细]
  • 本文介绍了在 PHP 7.1 中使用 openssl_encrypt 函数替代已弃用的 mcrypt_encrypt 函数的方法,并提供了详细的代码示例和常见问题的解决方案。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文探讨如何利用人工智能算法自动区分网页是详情页还是列表页,介绍具体的实现思路和技术细节。 ... [详细]
  • MATLAB实现n条线段交点计算
    本文介绍了一种通过逐对比较线段来求解交点的简单算法。此外,还提到了一种基于排序的方法,但该方法较为复杂,尚未完全理解。文中详细描述了如何根据线段端点求交点,并判断交点是否在线段上。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 以下实例展示了locals( ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • andr ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文详细介绍了如何在CAD软件中绘制螺纹,包括内外螺纹的具体步骤,并提供了专业的操作建议和常见问题解答。 ... [详细]
author-avatar
三千仇人-奈我何
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有