Oracle實現連乘的辦法
上次遇到一個Oracle連乘的一個問題。
原先解決的思路是構建一個自定義聚集函式來實現。
今天從yangtingkun的blog上看到了一個特殊的解決思路。不知道效率如何,但是從技術來講這是一個很巧妙的演算法。我是分步驟拆解後才搞清楚實現的原理。
with t as (select rownum rn from dual where rownum <= 10)
select power(10, sum(log(10, rn))) from t;
首先看第一步:
對10求rn的指數值,即10^a = rn
所以有:
10^a = 1;
10^b = 2;
10^c = 3;
......
從以上可以看出,如果要實現1×2×3,則有:
10^a × 10^b × 10^c
也就是:
10^(a+b+c)
所以,要實現連乘,就要先把各個要連乘的冪求出來,然後實現各個冪相加,再對10求各冪的和的指數值即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-608708/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中實現連乘Oracle
- Oracle中實現連乘(二)Oracle
- Oracle SQL實現階乘的幾個方法OracleSQL
- Mysql實現全外部連線(mysql無法使用full join的解決辦法)MySql
- 連線oracle錯誤解決辦法Oracle
- Mysql出現連線錯誤解決辦法MySql
- Oracle自動斷開資料庫連線的解決辦法Oracle資料庫
- FTP,FTP連線的辦法,配置方式FTP
- Windows連線遠端桌面時出現黑屏的解決辦法Windows
- 矩陣連乘矩陣
- Oracle10g出現Enterprise Manager 無法連線到資料庫例項解決辦法Oracle資料庫
- c語言實現階乘C語言
- 6種辦法實現精益軟體
- MySQL複製過程中出現的從庫無法連線主庫的解決辦法MySql
- 使用預設pypi源出現連線超時的解決辦法
- 用單連結串列實現多項式加,減,乘,簡單微分
- oracle中if/else功能的實現的3種寫法Oracle
- SSH 連線卡頓解決辦法
- windows無法配置此無線連線的解決辦法Windows
- c#遞迴實現 階乘C#遞迴
- 探索 單個Fragment實現沉浸式,其餘Fragment不實現的解決辦法Fragment
- 點乘和叉乘及其物理意義(C++STL實現)點乘C++
- oracle rac修改ip的處理辦法Oracle
- oracle 表碎片太多的處理辦法Oracle
- oracle imp過慢的解決辦法Oracle
- 找不到寬頻連線的解決辦法
- oracle連線串的一種寫法Oracle
- 網路印表機無法連線的原因與解決辦法
- Xamarin中VS無法連線Mac系統的解決辦法Mac
- 瀏覽器出現代理伺服器拒絕連線的解決辦法瀏覽器伺服器
- Python實現連結串列反轉的方法【迭代法與遞迴法】Python遞迴
- Navicat Premium_11不能連線oracle11g的解決辦法(ORA-28547)REMOracle
- 64位機器上使用PL/SQL Developer 連線不上Oracle的解決辦法SQLDeveloperOracle
- oracle批次更新解決辦法Oracle
- 矩陣連乘問題矩陣
- hdu 1757 矩陣連乘矩陣
- VPN連線800錯誤的解決辦法(轉)
- Java用OCI驅連Oracle資料庫的實現方法JavaOracle資料庫