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分析函式之開窗函式over()詳解Oracle函式
- ORACLE分析函式手冊(轉)Oracle函式
- ORACLE分析函式手冊二(轉)Oracle函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- Hive之分析函式Hive函式
- ORALCE函式:LAG()和LEAD() 分析函式詳解函式
- Golang閉包案例分析與普通函式對比Golang函式
- oracle 21c 新特性之 CHECKSUM 分析函式Oracle函式
- Oracle分析函式-first_value()和last_value()Oracle函式AST
- Linux中select()函式分析Linux函式
- count 函式原始碼分析函式原始碼
- MySQL分析函式實現MySql函式
- oracle 函式Oracle函式
- oracle or 函式Oracle函式
- (未完成)APC函式的執行,分析 KiDeliverApc 函式函式IDE
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- Oracle vs PostgreSQL Develop(14) - 分析函式KEEP DENSE_RANKOracleSQLdev函式
- Oracle分析函式之LEAD和LAG實際應用Oracle函式
- openGauss 高階分析函式支援函式
- Oracle常用函式Oracle函式
- 7 Oracle 函式Oracle函式
- Oracle 字串函式Oracle字串函式
- Oracle 字串函式Oracle字串函式
- Oracle優化案例-自定義函式索引(五)Oracle優化函式索引
- oracle 10g函式大全–日期型函式Oracle 10g函式
- Python函式用法和底層分析Python函式
- [20190728]分析函式LAST_VALUE.txt函式AST
- 分析函式改寫自關聯函式
- Data Lake Analytics的Geospatial分析函式函式
- 常用分析函式開窗講解函式
- Oracle函式彙總Oracle函式
- Oracle 隨機函式Oracle隨機函式
- Oracle 自定義函式Oracle函式
- oracle 高階函式Oracle函式
- oracle json 解析函式OracleJSON函式
- 第七章 函式函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- C++函式模板案例C++函式