Oracle分析函数七——分析函数案例
2009-10-22 11:38
369 查看
原创于2009年08月02日,2009年10月22日迁移至此。
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
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
相关文章推荐
- Oracle开发之SQL语句案例—分析函数的使用
- Oracle分析函数七——分析函数案例
- oracle的存储过程和存储函数深入分析和案例
- Oracle分析函数七——分析函数案例
- Oracle开发之SQL语句案例—分析函数的使用
- Oracle 分析函数Merge 案例
- Oracle 分析函数案例
- oracle心得2--单行函数理论讲解与案例分析.doc
- Oracle分析函数七——分析函数案例
- Oracle分析函数七——分析函数案例
- oracle分析函数之windowing_clause--rows
- @Oracle聚合函数/分析函数
- oracle分析函数
- oracle的分析函数over(Partition by...) 及开窗函数
- ORACLE 分析函数ratio_to_report的使用
- 浅谈oracle中row_number() over()分析函数用法
- oracle分析函数
- oracle 分析函数之 rank(), dense_rank(), lag(), lead()
- oracle 分析函数
- Oracle分析函数一——函数列表