引用
方法一:
使用窗口函数SUM OVER,用对数相加来模拟乘法操作。
SQL> select empno,ename,sal
2 from emp
3 where deptno=10;
EMPNO ENAME SAL
---------- ---------- ----------
7782 CLARK 2450
7839 KING 5000
7934 MILLER 1300
下面是实现方法
SQL> select empno,ename,sal,
2 exp(sum(ln(sal)) over(order by sal,empno)) as running_prod
3 from emp
4 where deptno=10;
EMPNO ENAME SAL RUNNING_PROD
---------- ---------- ---------- ------------
7934 MILLER 1300 1300
7782 CLARK 2450 3185000
7839 KING 5000 1.5925E+10
注意,在SQL中,对小于等于0的值取对数是无效的。如果表中包含这样的值,一定要避免把这些无效的值传递给SQL的LN函数。
引用
方法二:
ORACLE 10g引入了MODEL子句,在下面的例子中,每个SAL都是负数,这表明累乘积允许出现负值。
SQL> select empno,ename,sal,tmp as running_prod
2 from
3 (
4 select empno,ename,-sal as sal
5 from emp
6 where deptno=10
7 )
8 model
9 dimension by(row_number() over(order by sal desc) rn)
10 measures(sal,0 tmp,empno,ename)
11 rules
12 (
13 tmp[any]=case when sal[currentv()-1] is null then sal[currentv()]
14 else tmp[currentv()-1]*sal[currentv()]
15 end
16 );
EMPNO ENAME SAL RUNNING_PROD
---------- ---------- ---------- ------------
7934 MILLER -1300 -1300
7782 CLARK -2450 3185000
7839 KING -5000 -1.593E+10
引用
方法三:(不支持负数)
--测试数据
create table t(id int,qty int);
insert into t
select 1,2 from dual union all
select 2,4 from dual union all
select 3,6 from dual union all
select 4,5 from dual;
--执行查询
Select power(10, Sum(Log(10, qty))) From t
--查询结果
240
分享到:
相关推荐
oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...
Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。
ORACLE SQL性能优化系列 ORACLE SQL性能优化系列 ORACLE SQL性能优化系列
精通Oracle SQL【第2版】ORACLE SQL高级编程【第二版】学习笔记
Welcome to “Beginning SQL for Oracle Database 18C”! Thanks for picking up this book. It’s safe to say you’re interested in learning about Oracle database, as that’s what this book is about. Why ...
Oracle Sql基础(beginning oracle sql中文版)
Oracle SQL 11G2 官方文档,包含4份,分别是PLSQL语言参考、PLSQL程序包与类型、Oracle SQL参考、SQL快速参考
Oracle SQL 内置函数大全 SQL中的单记录函数 给出整数,返回对应的字符 连接两个字符串 增加或减去月份 用于对查询到的结果进行排序输出
资深开发DBA对Oracle SQL编写规范的总结
OracleSQL的优化.pdf
OracleSQL必备参考OracleSQL必备参考OracleSQL必备参考OracleSQL必备参考
Oracle SQL Developer is a relatively new product included in the range of Oracle products. It was frst introduced to the world in September 2005, by its code name Project Raptor. Raptor is a name ...
《Oracle SQL高级编程/数据库系列》的作者莫顿以精炼、风趣的语言揭开了Oracle SQL高级编程的神秘面纱。所涵盖的内容涉及SQL核心、SQL执行、分析函数、联结、测试与质量保证等,并提供大量实用性建议,且总结出...
本技术专题主要介绍如何使用Oracle SQL Developer和其他开发工具,内容包括使用Oracle Database Home Page、在Oracle中使用SQL*Plus、如何用SQL Developer来操作Oracle数据库以及表列定义等等。
oracle通过sql实现字符串转数字oracle函数,可用于字符串的最终排序
OracleSQLDeveloper,是用于Oracle的可视化管理工具,无需安装Oracle,解压就可以使用,但打开时需要指定本机JDK的位置即可。
本篇主要介绍Oracle SQL运行环境及SQL语法相关内容。通过本篇的学习,必须掌握ORACLE SQL的使用。如同一个文员必须掌握office的使用一样。 SQL,结构化查询语言,是用于访问关系型数据库的语言,它提供一系列的...
Oracle SQL*Plus Pocket Reference, 2nd Edition Copyright Oracle SQL*PlusPocket Reference Section 1.1. Introduction Section 1.2. Interacting with SQL*Plus Section 1.3. Selecting Data Section 1.4. ...
解决oracle sqldeveloper无法连接mysql、SQLServer问题,sqlDeveloper是ORACLE数据库开发工具,自带的是无法连接MS SQL Server以及mysql的,想连接的话需要第三方工具。 使用方法: 解压出来后将2个jar放入jlib...
Oracle SQL Tuning with Oracle SQLTXPLAIN: Oracle Database 12c Edition by Stelios Charalambides English | 8 May 2017 | ISBN: 1484224353 | 408 Pages | PDF | 24.39 MB Learn through this practical guide ...