• Oracle分析函数七——分析函数案例


    Oracle分析函数——分析函数案例

    环比

      环比就是现在的统计周期和上一个统计周期比较。例如20087月份与20086月份相比较称其为环比。

      环比发展速度是报告期水平与前一时期水平之比,表明现象逐期的发展速度。如计算一年内各月与前一个月对比,即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

  • 相关阅读:
    .NET程序员应该知道些什么[转载]
    天气数据一把抓。
    粮食的存在
    asp.net 开发 跬步篇〔1〕_ajax web页面复杂处理延时、客户交互问题
    Asp .net +jquery +.ashx 文件实现分页
    深入理解C++中的某些基本概念
    C++ 函数形参与实参总结
    Hash算法学习小记(一)
    关于指针和句柄的一些小记
    子类别忘了父类的带参构造函数!!!
  • 原文地址:https://www.cnblogs.com/huozhicheng/p/2533171.html
Copyright © 2020-2023  润新知