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)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL数据库基础知识思维导图如下所示: 1. SQL:结构化查询语言,用于管理和操作关系型数据库。 2. 数据库:结构化数据的集合,按照一定规则存储和组织。 3. 关系型数据库:使用表格和键值对来组织和表示数据的数据库。 4. 表格:由行和列组成,存储实际数据的基本单位。 5. 列:表格的垂直组成部分,定义了每个数据的类型。 6. 行:表格的水平组成部分,包含每个具体的数据记录。 7. 主键:表格中唯一标识每一行的字段,确保数据的唯一性。 8. 外键:表格中引用其他表格主键的字段,用于建立表之间的关联。 9. 索引:提高查询效率的数据结构,加速数据的访问速度。 10. 事务:一系列数据库操作的逻辑单元,要么全部执行成功,要么全部回滚。 11. 视图:虚拟表格,基于查询结果创建的临时表,简化数据访问和操作。 12. 数据库管理系统(DBMS):用于管理数据库的软件系统,例如MySQLOracle。 13. 数据库设计:根据需求分析,创建数据库模式和结构的过程。 14. 数据库查询语言:使用SQL语句进行数据查询和操作的语言。 15. 数据库连接:多个表格之间建立关系,通过共享字段进行数据关联。 16. 数据库备份:将数据库的副本保存到其他设备或位置,用于恢复数据。 17. 数据库恢复:使用备份副本还原数据库,防止数据丢失或损坏。 18. 数据库安全性:通过用户权限管理和身份验证保护数据库的安全性。 以上是SQL数据库基础知识的思维导图,可以帮助理解和记忆数据库相关概念和术语。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值