oracle sql model,SQL语句中的model用法

2023-11-14

事情起因,今天看到一条非常”稀奇古怪“的SQL,select语句中,在表后面跟了一大窜以model开头的东东,后来查一下资料,原来model在数据仓库中是比较有地位的.列一下几个简单的测试:[@more@]

1,测试表中数据:

SQL> select * from test1;

COUNTRY PRODUCT YEAR SALES

---------- ---------- ---------- ----------

USA Stock1 2008 100

USA Stock1 2009 200

USA Stock2 2008 300

USA Stock2 2009 500

CHINA Stock1 2008 1000

CHINA Stock1 2009 2000

CHINA Stock2 2008 3000

CHINA Stock2 2009 5000

现在预测2010年每个产品的销量,假设2010销量是2008和2009的平均值:

SQL> select * from test1

2 model

3 return updated rows --只返回更新的记录

4 partition by(country) dimension by(product,year)--两维数组,数组下标为product,year. --partition by(country) 其实也是数组的一维,product,year是在country下,细分的维数

5 measures(sales s)--由上面定义的两维数组,指向的哪一列数据

6 rules upsert all --更新或插入数据的规则

7 ( s[product,2010]=avg(s)[cv(product),year between 2008 and 2009]);--cv(current value)是就当前值

COUNTRY PRODUCT YEAR S

---------- ---------- ---------- ----------

USA Stock1 2010 150

USA Stock2 2010 400

CHINA Stock1 2010 1500

CHINA Stock2 2010 4000

从返回的结果来看,是我们所希望的。model的大致原理:先以表的数据构造出相应的数组,或者说是hash表,然后根据一些规则,构造出另外的记录,或者对原来的记录做相应的操作。其实这里涉及两个

问题:

1,既然是数组,怎么定义数组的下标,这些下标可能是一维,也可能是多维,然后就是这些维数指向 的具体的数据.

2,怎么操作这些数组,也就要定义操作规则.

这两个问题都在model子句里解决:partition by和dimension by就是定义数组的维,measures就是这些维指向的要操作的数据. rules后面就是定义这些数组的操作规则.

再看一个例子:

SQL> select country,product,year,sales,profit from test1

2 model

3 partition by(country) dimension by(product,year)

4 measures(sales, 0 as profit)

5 rules upsert all

6 ( sales[product,2010]=sales[CV(product),2008]+sales[CV(product),2009],

7 profit[product,year]=sales[cv(product),cv(year)]-sales[cv(product),cv(year)-1])

8 /

COUNTRY PRODUCT YEAR SALES PROFIT

---------- ---------- ---------- ---------- ----------

USA Stock1 2008 100

USA Stock1 2009 200 100

USA Stock2 2008 300

USA Stock2 2009 500 200

USA Stock1 2010 300 100

USA Stock2 2010 800 300

CHINA Stock1 2008 1000

CHINA Stock1 2009 2000 1000

CHINA Stock2 2008 3000

CHINA Stock2 2009 5000 2000

CHINA Stock1 2010 3000 1000

CHINA Stock2 2010 8000 3000

这里虚构出了一列数据profit. 这列的数据是在rules里定义的。用当年数值减去上一年的数值,这个跟高级复合函数(lead/lag() partition by)有相同的功能.

文档里有详细的介绍,model跟高级复合函数一样都比较强大,关健是要能熟练掌握。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle sql model,SQL语句中的model用法 的相关文章

  • 牛客网刷题-两数之和

    问题描述 给出一个整数数组 请在数组中找出两个加起来等于目标值的数 你给出的函数twoSum 需要返回这两个数字的下标 index1 index2 需要满足 index1 小于index2 注意 下标是从1开始的 假设给出的数组中只存在唯一
  • 哈希表【散列表】详解

    哈希表 hash 一 哈希表的插入及查询 hash表是一种数据结构 又称为散列表 其根本的原理就是把一个数变成另外一个易于存储的数 先来看一道例题吧 假如有n个数 n的范围只有10万 但是每个数的大小有1e9 怎么做才能统计每个数出现的次数
  • Windows系统中的Linux系统设置固定IP

    当前虚拟机的Linux操作系统 其IP地址是通过DHCP服务获得的 DHCP 动态获取IP地址 即每次重启设备都会获取一次 可能导致IP地址频繁变更 在VMware Workstation 或Fusion 中配置IP地址网关和网段 IP地址
  • 端口转发&&映射详解、代理&&反向代理深入认知

    端口转发 端口映射 端口转发和端口映射都是为了解决内网主机的端口无法在外部直接访问而衍生出来的技术 通过中间服务器进行中转 将内部的端口映射到公网IP上或者将内部端口转发到外部服务器 供用户或者自己来使用 端口转发 概念 端口转发 Port
  • 抖音去水印最新php方法代码

    输出正常JSON param string 提示信息 param array 输出数据 return json function jok msg success data null header content application js
  • UCI常用说明

    UCI常用函数说明 结构体 API函数 参考文章 安装完成后在 加粗样式 usr local include 目录下存放UCI h文件可以进行参考 结构体 1 struct uci package 包结构体 它对应一个配置文件内容 stru
  • unity-使用UGUI实现游戏开始、结束的设计

    开始界面 结束界面的制作 在场景中 新建一个canvas 在canvas中新建一个image作为背景图 可以通过Inspector界面 设置好image的相关属性 设置好背景之后 在场景中添加Button 根据个人需要 设置好Button的
  • 计算机视觉基础——数字图像与颜色空间

    欢迎大家关注微信公众号 baihuaML 白话机器学习 码字不易 如转载请私信我 在这里 我们一起分享AI的故事 您可以在后台留言 关于机器学习 深度学习的问题 我们会选择其中的优质问题进行回答 Hello 大家好 白话机器学习新的一个专题
  • 疯壳MTK智能穿戴入门篇-新增APP

    MTK编程 新增APP 在MTK 系统中 所有的功能都是模块化管理 并且大多数功能都有自己的功能宏 和对应的源代码文件 我们把这种功能模块称之为应用 简称APP Application 比如闹钟 计算器 日历等都是一个APP 在之前的例子中
  • Android里面的AutoCompleteTextView和MultiAutoCompleteTextView

    AutoCompleteTextView 动态的匹配输入的内容 独特的属性 设置输入多少字符时自动匹配 android completionThreshold 2 下面这个是在界面上定义的控件
  • 原生HTML跳转页面传递和接收参数方法

    传递参数 window location href order html info info 2 接受参数 在window nl ad function 里写下面的代码 var url location search 获取url中 符后的字
  • 过压保护电路(OVP)

    作者 AirCity 2020 2 4 Aircity007 sina com 本文所有权归作者Aircity所有 1 示例一 当VBUS 5V时 各点电压电流如图所示 Q1接近截止 输出信号是5V 当VBUS 5 4V开始 输出信号开始下
  • 《项目管理基础》学考笔记

    控制的主要成分是信息 每个人都应该进行状态和流程总结 条形图尾巴长短表示浮动时间 改善流程是每个项目经理的职责 项目控制分2方面 维持 改善质量 项目总结会议包括3类 设计 流程或经验教训 状态总结 计划时间不应超过4到6周 箭线图对于分析
  • 【平衡小车制作】(一)硬件原理图讲解(超详解)

    大家好 我是小政 之后的一系列文章我将介绍我玩平衡小车的过程以及遇到的一些问题 将这些内容记录下来分享给大家 也让大家少走一些弯路 接下来我将从硬件框架选择 软件编程 PID算法 PID调参 蓝牙遥控这五个部分向大家讲解平衡小车的制作过程
  • java 二进制转换为十进制_二进制转换十进制 算法解析

    java里面是有进制间互换现成的方法的 public class十进制与各进制的相互转换 public static voidmain String args java已经实现的机制 十进制转换为二进制 int decimal 10 Sys
  • php截取百度搜索结果

    简单的通过file URL 获取远程网页数据 用implode 函数把数组合并成string 再根据自己的需要 对string进行截取 过滤等个性化处理 基于此思想 可以进一步拓展 估计就是采集器的雏形了
  • 【华为OD机试真题2023 JS】统一限载货物数最小值

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 统一限载货物数最小值 知识点二分查找 时间限制 1s 空间限制 64MB 限定语言 不限 题目描述 火车站附近的货物中转站负责将到站货物运往仓库 小明在中转站负责调度2K辆中转车
  • JeeSite快速开发平台 JNPF快速开发平台3.4.6版本 框架源码部署文档入门说明

    JeeSite快速开发平台 JeeSite 快速开发平台 不仅仅是一个后台开发框架 它是一个企业级快速开发解决方案 后端基于经典组合 Spring Boot Shiro MyBatis 前端采用 Beetl Bootstrap AdminL
  • x264编码h264

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 x264介绍 二 x264中主要的编码接口以及主要数据结构介绍 1 void x264 param default x264 param t 2 int

随机推荐

  • 发现一个好用的层级多项目管理工具

    市面上项目管理工具蛮多的 但大多仅支持单层多项目管理 而我们公司有多条产品线 如果没有层级组织用于分类 使用起来就非常麻烦 最近 我们试用了下Topo项目管理软件 它可以根据我们的组织架构进行层级搭建 实际使用效果不错 看图 进系统 进设置
  • 【Linux】网络编程套接字(下)

    Linux 博客主页 一起去看日落吗 分享博主的在Linux中学习到的知识和遇到的问题 博主的能力有限 出现错误希望大家不吝赐教 分享给大家一句我很喜欢的话 看似不起波澜的日复一日 一定会在某一天让你看见坚持的意义 祝我们都能在鸡零狗碎里找
  • 第八天字符串

    344 反转字符串 力扣题目链接 opens new window 编写一个函数 其作用是将输入的字符串反转过来 输入字符串以字符数组 char 的形式给出 不要给另外的数组分配额外的空间 你必须原地修改输入数组 使用 O 1 的额外空间解
  • 基于单片机超声波测距语音播放

    一 系统方案 本设计采用52单片机作为主控器 HC SR04测距 液晶1602显示 按键设置报警阀值 语音报警 二 硬件设计 原理图如下 三 单片机软件设计 1 首先是系统初始化 uint dist 保存超声波模块测量到的结果 Trig P
  • pandas 数据导出

    1 导出到csv文件 1 1 DataFrame数据导出 index 0 忽略索引 header 0 忽略表头 mode a 可追加 df to csv data output path index 0 header 0 sep t flo
  • 循环控制结构小题1

    include
  • mapbox-gl支持多种坐标系

    文章目录 前言 效果 总结 前言 mapbox默认的投影是3857 但是实际应用中我们经常会使用高德 百度 天地图的服务 原生mapbox是不支持的 需要我们修改源码以支持以上坐标系 参考 支持百度 高德坐标系 mapboxgl 纠偏百度地
  • vue 项目中 zip 压缩包文件下载

    vue 项目中 zip 压缩包文件下载 参考文章 胡新fa 文件下载流程 参考文章 Mr 裴 压缩包下载打不开问题 參考文章 sqwu 注意 一定要在接口中配置 responseType blob 该属性 headers 根据需求添加 re
  • URL 地址栏锚点 window location hash 使用方法

    location是javascript里边管理地址栏的内置对象 比如location href就管理页面的url 用location href url就可以直接将页面重定向url 本文转自米扑博客 URL 地址栏锚点 window loca
  • ULN2003芯片控制直流电机学习

    ULN2003 双极型线性集成电路 达林顿晶体管阵列 ULN2003是一个单片高电压 高电流的达林顿晶体管阵列集成 电路 它是由7对NPN达林顿管组成的 它的高电压输出特性和阴 极箝位二极管可以转换感应负载 单个达林顿对的集电极电流是 50
  • pyspark_自定义udf_解析json列【附代码】

    pyspark 自定义udf 解析json列 附代码 一 背景 二 调研方案 三 利用Pyspark udf自定义函数实现大数据并行计算 整体流程 案例代码运行结果 案例代码 代码地址 代码 一 背景 车联网数据有很多车的时序数据 现有一套
  • GITHUB实用有趣工具推荐

    1 algorithm visualizer 一个交互式的在线可视化学习算法平台 能在可视化区域看到每行代码执行对应的操作 并且有对应的动画呈现 使你更加容易理解算法 2 pcottle learnGitBranching 一个在线可视化交
  • python能做什么毕业设计-有没有适合python做的毕设题目,现在不知道做什么了?...

    对于这个问题有三个解决方案 1 自己开发 2 借助开源项目 3 付费开发 结合自身的能力和需求 大家可以自行寻找合适的解决方案 1 自己开发 难度 高 实用性 低 价格 免费 Python 是一门非常好入门的语言 普通人跟着一门教程认真学
  • jenkins部署 java项目到远程 windows服务器

    jenkins部署 java项目到远程 windows服务器 1 查看windows服务器是否有 ssh服务 cmd模式 输入 ssh 如果报错就去安装ssh 可以去下 openSSH 2 然后直接用自己的电脑就是客户端 用xshell 连
  • 79. Word Search

    Given a 2D board and a word find if the word exists in the grid The word can be constructed from letters of sequentially
  • 蓦然回首 灯火阑珊

    时间的沙漏沉淀着无法逃离的过往 记忆的双手总是拾起那些明媚的忧伤 雨声 划破伤痛的记忆 泪水 激起心中的波浪 你的一闪而过 让我记住这永恒的瞬间 你在我生命中留下不褪色的光芒 就如流星的坠落绚丽地点亮了整个星空 很幸运 就像是个命运的宠儿
  • Bootloader

    Bootloader 一段有下载和引导功能的程序 下载应用程序 引导使MCU运行在应用程序中 只在有更新请求或者APP无效的时候才会激活 APP和Bootloader都存在Flash中 Flash Driver用来擦除APP 下载临时存放在
  • 力扣2596. 检查骑士巡视方案

    题目描述 骑士在一张 n x n 的棋盘上巡视 在 有效 的巡视方案中 骑士会从棋盘的 左上角 出发 并且访问棋盘上的每个格子 恰好一次 给你一个 n x n 的整数矩阵 grid 由范围 0 n n 1 内的不同整数组成 其中 grid
  • latent-diffusion model环境配置,这可能是你能够找到的最细的博客了

    文章目录 前言 一 环境配置 1 创建requirement txt文件 2 提前从Github上下载好taming transformers和clip 3 创建conda环境 并安装requirement txt文件 4 安装torch
  • oracle sql model,SQL语句中的model用法

    事情起因 今天看到一条非常 稀奇古怪 的SQL select语句中 在表后面跟了一大窜以model开头的东东 后来查一下资料 原来model在数据仓库中是比较有地位的 列一下几个简单的测试 more 1 测试表中数据 SQL gt sele