项目中复合指标由配置好的基础指标公式解析后存到如下一张表中:
--Create table
create table TESTRRT
(
complexid NUMBER not null,--复合指标id
basicid VARCHAR2(20) not null,--基础指标id
chu VARCHAR2(20),--除法标示(a为分子,b为分母)
plus VARCHAR2(20),--乘法标示
direction NUMBER,--计算方向(1为正2为负)
value NUMBER
)
复合指标1:(1001+1003)/(1002-1004)=-12
复合指标2:1006*1007/(2011+2022)=1.5
复合指标3:1009*1010/1011=0.5
--单独除法关系的指标
select t.complexid,
decode(sum(case
when t.chu = 'b' and t.direction = 1 then
t.VALUE
when t.chu = 'b' and t.direction = 2 then
-t.VALUE
end),
0,
0,
sum(case
when t.chu = 'a' and t.direction = 1 then
t.VALUE
when t.chu = 'a' and t.direction = 2 then
-t.VALUE
end) / sum(case
when t.chu = 'b' and t.direction = 1 then
t.VALUE
when t.chu = 'b' and t.direction = 2 then
-t.VALUE
end))
from testrrt t
where t.complexid = 1
group by t.complexid
网上查找相关资料表明,
http://blog.sina.com.cn/s/blog_63f3c0b201015gh9.htmloracle的累乘用法已经被很多人使用过啦。
exp(y)
【功能】返回e的y次幂(e为数学常量)
【参数】y,数字型表达式
ln(y)
【功能】返回e为底的自然对数。
由于ln对应的y参数仅可为正数,所以如下进行连乘的方法只能针对正数,不包含负数哦~
--先乘后除指标【累乘算法:exp(ln(a)+ln(b)+ln(c))=a*b*c】
select t.complexid,
decode(exp(sum(ln(case
when t.plus = 'p' and t.chu = 'b' then
t.value
end))),0,0,exp(sum(ln(case
when t.plus = 'p' and t.chu = 'a' then
t.value
end)))/sum(case
when t.plus is null and t.chu = 'b' then
t.value
end)
)
mvalues
from testrrt t
where t.complexid in (2,3)
group by t.complexid
- 大小: 22.6 KB
- 大小: 32.7 KB
分享到:
相关推荐
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的函数和方法库为SQL查询提供了强大的支持。在日常的数据操作和分析中,掌握一些常用的Oracle函数和方法是至关重要的。以下是对"Oracle最常用的...
在oracle中利用函数实现计算公式解析|在oracle中利用函数实现计算公式解析
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,由甲骨文公司(Oracle Corporation)开发。在“清华大学计算中心oracle培训资料”中,你可以学习到Oracle数据库的基础知识,包括其核心概念、架构和管理...
在Oracle数据库中,计算连续天数或连续时间是一项常见的需求,尤其在数据分析、报表生成或者业务规则检查等场景。这个任务通常涉及到日期处理和逻辑判断,Oracle提供了丰富的日期函数和运算符来支持这类操作。本篇...
通过入参 生日 ,计算日期(默认sysdate),计算年龄 精确到秒
在使用 OLEDB 连接 Oracle 数据库时,需要安装 Oracle 数据访问组件 (ODAC--Oracle Data Access Components),其中包括 Oracle Provider for OLEDB。这是因为 OraOLEDB.Oracle 提供程序是 Oracle 的一部分,需要单独...
4. 许可计算工具和资源:Oracle提供了多种工具来帮助用户进行许可计算,例如Oracle License and Service Contract Management Tool(OLSM),以及VMware官方提供的工具和建议。 5. 与Oracle的沟通:在不确定如何...
这份“清华大学计算中心ORACLE培训资料”是学习Oracle数据库技术的重要资源,它由清华大学计算中心精心编制,旨在帮助学员深入理解Oracle的核心概念、功能以及实际操作技巧。 一、Oracle基础 Oracle数据库系统是...
oracle资源监控指标.docx
### 使用Oracle计算系统当前时间的毫秒数 在IT领域,特别是数据库管理和应用程序开发中,时间戳是非常重要的数据类型之一。它可以用来记录事件的发生时间、处理时间等关键信息。对于Oracle数据库用户而言,有时需要...
计算oracle的表空间使用情况,sql语句。。。。。