`

Oracle模式SQL基础知识

 
阅读更多
--创建用于测试的表及数据
create table t603
(
  code  varchar2(10),
  year  varchar2(10),
  month varchar2(10),
  p_id  varchar2(7),
  v1    number(10),
  v2    number(10)
);
comment on column t603.code is '工厂';
comment on column t603.year is '年份';
comment on column t603.month is '月份';
comment on column t603.p_id is '产品';
comment on column t603.v1 is '生产量';
comment on column t603.v2 is '销售量';
 
insert into t603 values('600001',2012,11,'30',1,1);
insert into t603 values('600001',2012,11,'31',1,1);
insert into t603 values('600001',2012,11,'10',2,2);
insert into t603 values('600002',2012,12,'10',3,2);
insert into t603 values('600002',2012,12,'31',2,1);
insert into t603 values('600002',2012,12,'30',2,1);
 
select * from t603;

 

--按自定义的规则聚合

 

select code,
       p_id,
       v1 
  from t603
 where code in ('600001', '600002') 
       model return updated rows --MODEL后面的RETURN UPDATED ROWS子句将结果限制为在该查询中创建或更新的那些行,使结果集只包含新计算的值。
       partition by(code)        --分区
       dimension by(p_id)        --维度
       measures(v1)              --度量
       rules (v1['err1'] = v1['30'] + v1['31'] - v1['10']) --计算规则
 order by code, p_id;

  

输出   CODEP_IDV1

1600001err10

2600002err11

 

 

 

--按多个规则聚合,返回包括非聚合行

 

select code,
       year,
       p_id, 
       month,
       v1
  from t603
 where year = '2012'
       model
       partition by (code,year)
       dimension by (p_id,month)
       measures (v1,v2)
       rules (
             v1['err1',11] = v1['30',11] + v1['31',11] - v1['10',11],
             v2['err1',12] = v2['30',12] + v2['31',12] - v2['10',12])
 order by code, p_id;

  

输出   CODEYEARP_IDMONTHV1

1600001201210112

2600001201230111

3600001201231111

46000012012err112

56000012012err1110

6600002201210123

7600002201230122

8600002201231122

96000022012err112

106000022012err111

 

 

 

--指定要聚合的维值

 

select code,
       p_id, 
       month,
       v1
  from t603
 where year = '2012'
       model return updated rows
       partition by (code)
       dimension by (p_id,month)
       measures (v1)
       rules (
             v1['err1',for month in(11,12)] = v1['30',cv(month)] + v1['31',cv(month)] -v1['10',cv(month)])
 order by code, p_id, month;

  

输出  CODEP_IDMONTHV1

1600001err1110

2600001err112

3600002err111

4600002err1121

 

--CV()函数获取多行统计记录的当前值,可以使用表达式进行计算

--为数值型可用语法:for month from 1 to 12 increment 1

--还可以使用子查询:for year in (select year from t603)

 

 

 

分享到:
评论

相关推荐

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存 32 2.6 查询转换 35 2.7 视图合并 36 2.8 子查询解嵌套 39 2.9 谓语前推 42 2.10 使用物化视图...

    Oracle 10g数据库管理、应用与开发标准教程

    Oracle数据库体系结构,SQL基本查询,修改SQL数据与SQL*Plus命令,PL/SQL编程基础,用户、模式和表,高级查询,过程、函数和程序包,表类型,索引,视图、序列和同义词,触发器,事务与并发控制,安全,管理存储结构...

    精通SQL--结构化查询语言详解

    第1章 数据库与sql基础 1 1.1 数据库的基本概念 1 1.1.1 数据库的由来 1 1.1.2 数据库系统的概念 3 1.2 数据库系统的结构、组成及工作流程 3 1.2.1 数据库的体系结构 3 1.2.2 数据库系统的组成 4 1.2.3 ...

    Oracle Database 11g初学者指南--详细书签版

     本书能使读者快捷地掌握oracle database 11g的基础知识。通过自我评估教程,介绍了核心数据库技术、管理员职责、高可用性以及大型数据库特性。本书带领读者循序渐进地学习数据库设置、管理、编程、备份和恢复。还...

    精通SQL 结构化查询语言详解

    第1章 数据库与SQL基础  1.1 数据库的基本概念  1.1.1 数据库的由来  1.1.2 数据库系统的概念  1.2 数据库系统的结构、组成及工作流程 1.2.1 数据库的体系结构  1.2.2 数据库系统的组成  1.2.3 数据库...

    ORACLE9i_优化设计与系统调整

    第6章 性能优化基础知识 82 §5.1 理解ORACLE性能优化 82 §5.1.1 响应时间与吞吐量的折衷 82 §5.1.2 临界资源 83 §5.1.3 过度请求的影响 83 §5.1.4 调整以解决问题 83 §5.2 优化的执行者 84 §5.3 设置性能目标...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    《Oracle Database 11g初学者指南》能使读者快捷地掌握Oracle Database 11g的基础知识。通过自我评估教程,介绍了核心数据库技术、管理员职责、高可用性以及大型数据库特性。《Oracle Database 11g初学者指南》带领...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

    《Oracle11g宝典》共分19章,第1~4章分别介绍了Oracle11g的下载和安装、SQL*Plus的使用、SQ语言与PL/SQL.程序设计,第5~9章分别介绍了Oracle11g的体系结构、表空间与数据文件的管理、启动和关闭数据库、网络服务...

    计算机信息管理 学习Oracle数据库和Delphi工具的基础

    概括介绍了计算机应用模式的变迁和计算机信息管理的全貌与发展,结合当前典型的数据库产品Oracle、SQL Server和关系数据库标准语言SQL,详细介绍了数据库的基础知识和主要技术,并以Delphi为例介绍了面向对象的组件...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...

    Oracle DBA突击帮你赢得一份DBA职位(完全高清版)1

    本书以Oracle 10g为基础,由浅入深、从易到难,详细介绍了DBA职位所要求的知识结构和实战技能。第1章至第4章是基础篇,包括数据库建模、Oracle体系结构、网络结构、备份恢复和使用OEM,这些对于刚刚从事DBA或者试图...

    PL/SQL Developer8.04官网程序_keygen_汉化

    编程基础知识  1. 程序结构 PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare开头)、执行部分(以 begin开头)和异常处理部分(以exception开头)。其中执行部分是必须的,...

    SQL语句从入门到精通迅速提升篇视频课程(Oracle零基础版)

    使大家快速掌握SQL的基础及部分高阶知识,进而熟练的对数据库表、字段进行各种查询、创建、更新、删除操作。  本课程内容可分为三大块:  (1)条件查询、排序、分组、模糊查询、聚合函数等基础部分讲解;  ...

    oracle 数据库学习 基本结构介绍

    普及一下oracle的基础知识,总结一下,oracle 是由实例和数据库组成。结构如下: oracle数据库由实例、数据库组成: * 数据库由数据文件(包含oracle 数据、索引、表结构等数据)、控制文件(包括每个表的操作信息...

    大数据的基础知识.pdf

    ⼤数据的基础知识 1、⼤数据的基础知识 ⼤数据的概念 ⼤数据(big data),IT⾏业术语,是指⽆法在⼀定时间范围内⽤常规软件⼯具进⾏捕捉、管理和处理的数据集合,是需要新处理模式才能 具有更强的决策⼒、洞察发现...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

Global site tag (gtag.js) - Google Analytics