Oracle分析函式七——分析函式案例
環比
環比就是現在的統計週期和上一個統計週期比較。例如2008年7月份與2008年6月份相比較稱其為環比。
環比發展速度是報告期水平與前一時期水平之比,表明現象逐期的發展速度。如計算一年內各月與前一個月對比,即2月比1月,3月比2月,4月比3月 ……12月比11月,說明逐月的發展程度。如分析抗擊"非典"期間某些經濟現象的發展趨勢,環比比同比更說明問題。
學過統計或者經濟知識的人都知道,統計指標按其具體內容、實際作用和表現形式可以分為總量指標、相對指標和平均指標。由於採用基期的不同,發展速度可分為同比發展速度、環比發展速度和定基發展速度。簡單地說,就是同比、環比與定基比,都可以用百分數或倍數表示。
定基比發展速度,也簡稱總速度,一般是指報告期水平與某一固定時期水平之比,表明這種現象在較長時期內總的發展速度。同比發展速度,一般指是指本期發展水平與上年同期發展水平對比,而達到的相對發展速度。環比發展速度,一般指是指報告期水平與前一時期水平之比,表明現象逐期的發展速度。
同比和環比,這兩者所反映的雖然都是變化速度,但由於採用基期的不同,其反映的內涵是完全不同的;同比與環比相比較,而不能拿同比與環比相比較;而對於同一個地方,考慮時間縱向上發展趨勢的反映,則往往要把同比與環比放在一起進行對照
同比
英文:year-on-year
同比就是今年第n月與去年第n月比;(環比就是今年第n月與第n-1月或第n+1月比)學過統計或者經濟知識的人都知道,統計指標按其具體內容、實際作用和表現形式可以分為總量指標、相對指標和平均指標。由於採用基期的不同,發展速度可分為同比發展速度、環比發展速度和定基發展速度。簡單地說,就是同比、環比與定基比,都可以用百分數或倍數表示。
同比發展速度主要是為了消除季節變動的影響,用以說明本期發展水平與去年同期發展水平對比而達到的相對發展速度。如,本期2月比去年2月,本期6月比去年6月等。其計算公式為:同比發展速度=本期發展水平/去年同期發展水平×100%。在實際工作中,經常使用這個指標,如某年、某季、某月與上年同期對比計算的發展速度,就是同比發展速度。
環比發展速度是報告期水平與前一時期水平之比,表明現象逐期的發展速度。如計算一年內各月與前一個月對比,即2月比1月,3月比2月,4月比3月 ……12月比11月,說明逐月的發展程度。如分析抗擊"非典"期間某些經濟現象的發展趨勢,環比比同比更說明問題。
定基比發展速度也叫總速度。是報告期水平與某一固定時期水平之比,表明這種現象在較長時期內總的發展速度。如,"九五"期間各年水平都以1995年水平為基期進行對比,一年內各月水平均以上年12月水平為基期進行對比,就是定基發展速度。
定基比
定基比發展速度也叫總速度。是報告期水平與某一固定時期水平之比,表明這種現象在較長時期內總的發展速度。如,"九五"期間各年水平都以1995年水平為基期進行對比,一年內各月水平均以上年12月水平為基期進行對比,就是定基發展速度。
另可參見同比、環比:
同比發展速度主要是為了消除季節變動的影響,用以說明本期發展水平與去年同期發展水平對比而達到的相對發展速度。如,本期2月比去年2月,本期6月比去年6月等。其計算公式為:同比發展速度=本期發展水平/去年同期發展水平×100%。在實際工作中,經常使用這個指標,如某年、某季、某月與上年同期對比計算的發展速度,就是同比發展速度。
環比發展速度是報告期水平與前一時期水平之比,表明現象逐期的發展速度。如計算一年內各月與前一個月對比,即2月比1月,3月比2月,4月比3月 ……12月比11月,說明逐月的發展程度。如分析抗擊"非典"期間某些經濟現象的發展趨勢,環比比同比更說明問題
CREATE TABLE salaryByMonth
(
employeeNo varchar2(20),
yearMonth varchar2(6),
salary number
)
SELECT
employeeno,
yearmonth,
salary,
MIN(salary) KEEP (DENSE_RANK FIRST ORDER BY yearmonth) OVER (PARTITION BY employeeno) first_salary, --基比分析 salary/first_salary
LAG(salary,1,0) OVER (PARTITION BY employeeno ORDER BY yearmonth) AS prev_sal, --環比分析,與上個月份進行比較
LAG(salary,12,0) OVER (PARTITION BY employeeno ORDER BY yearmonth) AS prev_12_sal --同比分析,與上個年度相同月份進行比較
FROM salaryByMonth
ORDER BY employeeno,yearmonth
--SQL常用的演算法
SELECT *
FROM salaryByMonth a
WHERE (a.employeeno,a.salary) IN
(
SELECT b.employeeno,max(salary)
FROM salaryByMonth b
GROUP BY b.employeeno
)
--用分析函式替代
SELECT distinct
employeeno,
MAX(salary) OVER (PARTITION BY employeeno) AS max_salary,
FIRST_VALUE(yearmonth) OVER (PARTITION BY employeeno ORDER BY salary DESC) AS high_yearmonth
FROM salaryByMonth
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6517/viewspace-611068/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle聚合函式/分析函式Oracle函式
- ORACLE函式介紹第七篇 非著名函式之分析函式Oracle函式
- Oracle 分析函式Oracle函式
- Oracle分析函式Oracle函式
- 【分析函式】Oracle分析函式之LAG和LEAD函式Oracle
- Oracle分析函式與視窗函式Oracle函式
- oracle 分析函式(轉)Oracle函式
- oracle分析函式(一)Oracle函式
- Oracle常用分析函式Oracle函式
- Oracle分析函式{轉}Oracle函式
- Oracle分析函式-6Oracle函式
- Oracle分析函式-5Oracle函式
- Oracle分析函式-4Oracle函式
- Oracle分析函式-2Oracle函式
- Oracle分析函式-1Oracle函式
- Oracle分析函式-3Oracle函式
- oracle 10g函式大全--分析函式Oracle 10g函式
- oracle的分析函式over 及開窗函式Oracle函式
- 聊聊Oracle排序分析函式Oracle排序函式
- oracle 統計分析函式Oracle函式
- ORACLE分析函式手冊Oracle函式
- Oracle 分析函式詳解Oracle函式
- Oracle 分析函式的使用Oracle函式
- 分析函式函式
- ORACLE函式介紹第六篇 著名函式之分析函式Oracle函式
- Oracle分析函式之開窗函式over()詳解Oracle函式
- ORACLE分析函式手冊(轉)Oracle函式
- ORACLE分析函式手冊二Oracle函式
- Oracle分析函式使用總結Oracle函式
- oracle分析函式_小貼(一)Oracle函式
- oracle的分析函式over(Partition by...) 及開窗函式Oracle函式
- ORACLE單行函式與多行函式之七:多行函式之分組函式示例Oracle函式
- 分析函式概述函式
- 分析函式 over函式
- 分析函式 - LAG函式
- 【Analytic】分析函式之MIN函式函式
- 【Analytic】分析函式之MAX函式函式
- 【Analytic】分析函式之AVG函式函式