`

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语法大全

    SQL基础知识 SQL(Structured Query Language)是一种关系数据库标准语言,具有查询、操纵、定义、控制等四大功能。SQL的特点包括一体化、两种使用方式、统一的语法结构、高度非过程化、语言简洁易学易用等。 SQL...

    Oracle TimesTen SQL 参考指南

    - **向后兼容的Oracle类型**:由于TimesTen支持Oracle类型模式,因此还提供了一些额外的数据类型,以确保与Oracle数据库系统的兼容性。 - **TimesTen类型映射**:说明了如何在不同的数据模型之间进行类型转换。 - **...

    oracle pl sql 实例精解 源代码

    总的来说,这个资料集提供了一套全面的学习Oracle PL/SQL的途径,从基础概念到实际应用,通过实例演示和动手实践,帮助读者建立起坚实的基础,提升在Oracle数据库环境中解决问题的能力。无论你是初学者还是有经验的...

    Oracle.SQL必备参考_oracle_

    1. **SQL基础**:SQL(Structured Query Language)是用于管理关系数据库的语言,包括SELECT、INSERT、UPDATE、DELETE四大基本语句,分别用于查询、插入、修改和删除数据。 2. **Oracle SQL扩展**:Oracle数据库...

    ORACLE SQL入门与实战经典

    Oracle SQL基础知识点主要包括以下几个方面: 1. SQL语言概述:结构化查询语言(SQL)是一种用于管理和操作关系数据库的标准编程语言。Oracle SQL遵循SQL标准,但同时也提供了一些特定于Oracle的扩展。 2. 数据...

    本文目标有关于oracle中sql基础练习

    Oracle SQL基础练习主要涉及的是对数据库中的数据进行查询、操作和管理的技能。SQL(Structured Query Language)是标准的数据库语言,用于执行各种任务,如创建表、插入数据、更新数据以及从数据库中检索信息。以下...

    ORACLE PL/SQL从入门到精通

    ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...

    Oracle常用SQL语句复习

    以上是Oracle SQL的基础知识点,通过深入理解和实践这些语句,能够高效地管理和操作Oracle数据库。在实际工作中,应结合具体需求灵活运用,不断提升数据库管理技能。参考资源如《Oracle Database SQL Reference》等...

    oracle parallel SQL

    为了更好地理解 Oracle 并行 SQL 的工作原理和优势,我们需要先了解一些基础知识。在串行执行环境中,一个单一的进程或线程负责执行 SQL 语句所需的操作,并且在某个操作完成之前,后续的操作无法开始。一个单独的 ...

    oracle 基础知识整理

    本文将深入探讨Oracle基础知识,包括其架构、安装、数据类型、SQL语句、表空间管理以及备份与恢复策略。 一、Oracle数据库架构 Oracle数据库采用客户/服务器(Client/Server)模式,由多个组件构成。主要包括数据库...

    java+SSH+oracle+sqlserver学习笔记

    【Java SSH Oracle SQLServer 学习笔记】 Java是一种广泛使用的面向对象的编程语言,它以其跨平台、开源和丰富的库而闻名。SSH是三个开源框架的缩写,分别是Spring、Struts和Hibernate,它们在Java Web开发中起着至...

    最全的ORACLE-SQL笔记

    【Oracle SQL笔记详解】 Oracle SQL是用于访问和...这些是Oracle SQL基础操作的一部分,实际应用中还有更复杂的查询技巧,如子查询、联接、聚合函数等。学习并掌握这些知识,对于有效管理和操作Oracle数据库至关重要。

    Oracle-SQL培训-V1.0

    根据提供的文档内容,我们可以归纳并深入探讨Oracle SQL的相关知识点,主要围绕SELECT语句及其使用方法展开。...这些知识点是学习和掌握Oracle SQL的重要基础,能够帮助用户更高效地管理和查询数据库中的数据。

    ORACLE &SQL PROGRAMING

    本文将深入探讨Oracle SQL、PL/SQL、Spring以及ABAP等关键知识点,这些技术不仅构成了数据库管理和应用开发的基础,也是现代软件工程中不可或缺的一部分。 ### Oracle SQL Oracle SQL是Oracle数据库系统中的SQL...

    oracle培训sql性能优化ppt

    优化基础知识** - **性能管理**:早期介入,设定明确目标,持续监控,团队协作,及时应对意外和变化,遵循80/20原则,即关注关键性能瓶颈。 - **SQL优化衡量指标**:主要关注系统响应时间与并发性。性能不佳通常...

    ORACLE-SQL优化

    优化基础知识包括性能管理、性能问题的识别、调整方法以及SQL优化机制。性能管理强调早期介入,设立目标,并持续监控与调整。性能问题通常与系统响应时间和并发性相关。调整方法包括业务功能、数据设计、流程设计、...

    oracle sql pl 基础学习

    在IT领域,Oracle SQL与PL/SQL是数据库管理和应用程序开发中的关键技能,尤其对于初学者而言,掌握其基础知识至关重要。本文将围绕“Oracle SQL PL/基础学习”这一主题,深入探讨SQL*Plus的使用方法、命令语法以及...

    Oracle架构的基础知识(入门级)

    ### Oracle架构的基础知识(入门级) #### 一、Oracle数据库结构概述 在Oracle数据库系统中,数据被组织成一系列逻辑和物理结构。了解这些结构对于理解Oracle如何存储和管理数据至关重要。 ##### 1. 数据库文件...

    oracle高性能sql调整

    在Oracle数据库管理中,SQL(Structured ...以上知识点构成了"Oracle高性能SQL调整"的核心内容。通过对这些领域的深入理解和实践,数据库管理员和开发人员能够有效提升Oracle系统的SQL执行效率,改善整体系统性能。

Global site tag (gtag.js) - Google Analytics