在平時(shí)的工作中,由于主要接觸ERP方面的業(yè)務(wù)數(shù)據(jù)處理,Oracle的分析函數(shù)一直沒怎么使用,但隨著公司開始做數(shù)據(jù)分析,Oracle的分析函數(shù)出現(xiàn)的越來(lái)越頻繁。因此準(zhǔn)備把分析函數(shù)中重要的幾個(gè)常用函數(shù)用法分析下。

創(chuàng)新互聯(lián)建站秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營(yíng)銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),小程序設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì)制作,成都做手機(jī)網(wǎng)站,成都全網(wǎng)營(yíng)銷推廣幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長(zhǎng)。
Lag(): 在查詢中取出同一字段前N行的數(shù)據(jù)作為獨(dú)立的列。
表達(dá)式理解為:按column2進(jìn)行分組且根據(jù)column3進(jìn)行排序,取column1前N行(往前數(shù)第N行)的列值,如果為空則用xxxx進(jìn)行默認(rèn)。
由此可以想到,采用該方式可以計(jì)算環(huán)比以及同比,同比與表間join,該函數(shù)將大大減少SQL的量。
Lead(): 在查詢中取出同一字段后N行的數(shù)據(jù)作為獨(dú)立的列。
表達(dá)式理解為:按column2進(jìn)行分組且根據(jù)column3進(jìn)行排序,取column1后N行(往后數(shù)第N行)的列值,如果為空則用xxxx進(jìn)行默認(rèn)。
lag和lead的函數(shù),主要應(yīng)用于查找前后行的列記錄,使用這兩個(gè)分析函數(shù),可以減少子查詢或表關(guān)聯(lián),并且能夠大大提升sql語(yǔ)句性能。
substr(t.salarymonth, -2)) "同比",
sum(t.salary) /
(select sum(t1.salary)
from D_MONTH_SALARY t1
where t1.salarymonth =
to_char(to_date(t.salarymonth, 'yyyymm') - 1, 'yyyymm')) "環(huán)比"
from D_MONTH_SALARY t
group by t.salarymonth;
同學(xué) 你這個(gè)問題我也想了老半天 終于幫你整出一個(gè)可行的方案了 本地已經(jīng)測(cè)試
幫你的難點(diǎn)解決了 不明白再問了
語(yǔ)句還是幫你貼出來(lái)吧,oracle和sql差不多
select *,ROW_NUMBER() over (order by rq)*1 bz into #temp1 from #temp order by rq
select *,ROW_NUMBER() over (order by rq)+1 bz into #temp2 from #temp order by rq
select a.rq 本月,a.amount 本月數(shù)量,b.amount 同比數(shù)量,b.rq 同比日期
from (select * from #temp1
) a left join (select * from #temp2
) b on a.bz=b.bz
同比增長(zhǎng)率=(本期數(shù)-同期數(shù))÷同期數(shù)×100%
同比表示第n月與第n月比(n≤12),說明本期發(fā)展水平與同期發(fā)展水平對(duì)比達(dá)到的相對(duì)發(fā)展速度。
舉例:去年3月的產(chǎn)值100萬(wàn),本年3月的產(chǎn)值300萬(wàn),同比增長(zhǎng)率=(300-100)÷100=200%,代表和同期相比較的增長(zhǎng)率。
但如果同期數(shù)為負(fù)值的情況,公式如下:同比增長(zhǎng)率=(本期數(shù)-同期數(shù))÷ |同期數(shù)|×100%,同比增長(zhǎng)率=(50W-(-100W))/|-100W||×100%=150%
擴(kuò)展資料:?
同比和環(huán)比:
同比、環(huán)比與定基比,都可以用百分?jǐn)?shù)或倍數(shù)表示。同比發(fā)展速度指是指本期發(fā)展水平與上年同期發(fā)展水平對(duì)比,而達(dá)到的相對(duì)發(fā)展速度。環(huán)比發(fā)展速度指報(bào)告期水平與前一時(shí)期水平之比,表明現(xiàn)象逐期的發(fā)展速度。
同比和環(huán)比,這兩者所反映的雖然都是變化速度,但由于采用基期的不同,其反映的內(nèi)涵是完全不同的。同比與環(huán)比最大的區(qū)別體現(xiàn)為兩個(gè)方面:
1、對(duì)比基數(shù)不同,同比的對(duì)比基數(shù)是上年的同一期間的數(shù)據(jù),環(huán)比的基數(shù)則是上一期間的數(shù)據(jù)。
2、側(cè)重點(diǎn)不同,環(huán)比側(cè)重反映數(shù)據(jù)的短期趨勢(shì),會(huì)受到季節(jié)等因素的影響,同比更加側(cè)重反映長(zhǎng)期的大趨勢(shì),也就規(guī)避了季節(jié)的因素。
參考資料來(lái)源:百度百科-同比
select 年份,季度,營(yíng)收,營(yíng)收-lag(營(yíng)收,1,null) over(order by 年份,季度) from t ;
同比是什么
同比就是今年第n月與去年第n月比。同比主要是為了消除季節(jié)變動(dòng)的影響,用以說明本期發(fā)展水平與去年同期發(fā)展水平對(duì)比而達(dá)到的相應(yīng)發(fā)展速度。
同比的由來(lái)
由于采用基期的不同,發(fā)展速度可分為同比發(fā)展速度、環(huán)比發(fā)展速度和定基發(fā)展速度。簡(jiǎn)單地說,就是同比、環(huán)比與定基比,都可以用百分?jǐn)?shù)或倍數(shù)表示。
同比增長(zhǎng)計(jì)算公式
同比增長(zhǎng)率=(本期數(shù)-同期數(shù))÷同期數(shù)×100%
同比增長(zhǎng)率,一般是指和同期相比較的增長(zhǎng)率。
某個(gè)指標(biāo)的同比增長(zhǎng)=(某個(gè)指標(biāo)的值-同期這個(gè)指標(biāo)的值)/同期這個(gè)指標(biāo)的值。
網(wǎng)站名稱:oracle怎么計(jì)算同比,oracle 同比函數(shù)
文章分享:http://chinadenli.net/article6/dsgshog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、App設(shè)計(jì)、域名注冊(cè)、關(guān)鍵詞優(yōu)化、、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)