精华内容
下载资源
问答
  • 常用的增长率有同比增长率与环比增长率,我们常说的同比增长多少百分之几,环比增长多少百分之几,指的就是它们。它们的计算公式都是: ((报告期值 - 基期值) / 基期值) * 100% = (报告期值 / 基期值 - 1) * 100% ...

    在时间序列的描述分析中存在一个增长率的概念,增长率又称增长速度,其本质是对某一现象在不同时间的变化情况所做的描述。
    常用的增长率有同比增长率环比增长率,我们常说的同比增长多少百分之几,环比增长多少百分之几,指的就是它们。它们的计算公式都是:

    • ((报告期值 - 基期值) / 基期值) * 100%
      = (报告期值 / 基期值 - 1) * 100%
    • 注:一般用百分比表示,所以公式后需要乘以 100%

    同比增长率和环比增长率的区别在于它们的基期的定义是不同的,同比增长率的基期是同时期(主要是为了消除季节变动的影响),即与报告期之间不是连续的,是离散的,比如报告期是今年2月,基期是去年同时期的2月;而环比增长率的基期是前一时期,即与报告期之间是连续的,比如报告期是今年2月,基期是今年1月。

    通常看业务发展趋势时,即要看同环比的趋势,需要往前拉几期来看
    特殊情况:当指标的值出现负值的时候,这个公式就失效了,是没有实际意义的,因为它无法正确反应现象发展的趋势。这时候怎么修改公式,都像是打补丁,治标不治本。

    1. 比如报告期值是正的,基期是负的,这时候得到的结果是负值,明明是正向增长,但是增长率显示是负增长,与客观事实不符合;
    2. 在上一基础上,对公式进行修正(参考百度百科),对分母取绝对值可以得到正常的方向,但是这个值还是存在问题的,增长的更多,增长率可能会显示的更小;
    3. 取巧:可以考虑对该指标做 MinMax 标准化,将值的范围限制在[0,1]之间,然后对0值做一些处理,这样得到的同环比结果的方向(发展趋势)是符合实际的,但是这个发展大小是否合理就有待商榷了。

    总之,同环比增长率仅适用于指标都是正值的场景
    在指标有负值的情况,同环比增长率是失效的,没有实际意义,即使修正算法,也只是打补丁,总归是存在问题的。

    展开全文
  • 本文演示如何使用Oracle数据库的over分析函数满足业务提出的数据分析需求(查询按机构,分类查询指定月份的环比同比数据)。 over函数的具体使用方法请参考博文 概念分析 进行数据分析的第一步一定是弄明白业务...

    本文演示如何使用Oracle数据库的over分析函数满足业务提出的数据分析需求(查询按机构,分类查询指定月份的环比,同比数据)。
    over函数的具体使用方法请参考博文

    概念分析

    进行数据分析的第一步一定是弄明白业务人员的意图,搞清楚业务提出的相关概念。
    环比:本月相比上个月的业务增长量与上个月业务量的百分比值。
    同比:本月相比上一年度同一月份的业务增长量与上一年度同一月份业务量的百分比值。

    设计算法

    业务分析需求的主要指标是选定月相关机构和类别的销售量和上一个月或者上一年度同一月份同一机构和类别销售量(即机构类别的月销售量),然后求解相关数值的比值。

    算法

    1,对销售数据按照机构,类别和月份进行汇总。
    2,使用over函数求当前月份的前1条和前12条数据值。
    3,计算相关数据间的比值,显示结果。

    数据质检

    本文争对的数据量少(千万级)计算成本低(秒级)可以通过直接运行算法验证,如果数据量大计算成本高请务必先对算法进行分析并选择合适的数据验证方式。

    数据质量报告

    1,分组数据量不平衡,相邻数据差异很大。
    2,存在数据量为0情况,可能导致除数为0的异常。
    3,分组连贯性没法保证,使用over函数会出现取错数据。

    解决方案

    1,争对除数可能问0的异常选择计算前对除数进行判断(使用Oracle的decode函数)。
    2,争对分组不连贯的问题适当的做数据填充。

    编写算法

    表结构设计

    设计待分析数据表结构:
    #tb_temp

    create table tb_temp
    (shop integer,
    category integer,
    salevalue number(20,2),
    month integer);
    

    #tb_analysis

    create table tb_analysis
    (shop integer,
    category integer,
    salevalue number(20,2),
    onmonth number(20,2),
    onyear number(20,2),
    month integer);
    
    数据抽取及填充

    #抽取临时数据

    insert into tb_temp
      (shop, category, salevalue, month)
      select shop, category, sum(salevalue), to_number(to_char(saledate, 'yyyymm'))
        from tb_sale
       group by shop, category, to_number(to_char(saledate, 'yyyymm'));
    

    #填充数据
    #使用存储过程
    本文只是一个简单的填充数据过程,待读者根据实际需求完善(异常处理,日志记录等)。

    create or replace procedure pk16_padd as
      months number;
      sdate  date;
      n      integer;
      cursor cs_groups is
        select distinct shop, category from tb_sale;
    begin
      select trunc(min(saledate), 'month'),
             ceil(months_between(max(saledate), min(saledate)))
        into sdate, months
        from tb_sale;
      for sc in cs_groups loop
        n := 0;
        while n <= months loop
          insert into tb_temp
            (shop, category, salevalue, month)
          values
            (sc.shop,
             sc.category,
             0,
             to_number(to_char(add_months(sdate, n), 'yyyymm')));
          n := n + 1;
        end loop;
      end loop;
      commit;
    end;
    

    #抽取分析数据

    insert into tb_analysis
      (shop, category, salevalue, onmonth, onyear, month)
      select shop,
             category,
             salevalue,
             lag(salevalue, 1, 0) over(partition by shop, category order by month) onyear,
             lag(salevalue, 12, 0) over(partition by shop, category order by month) onmonth,
             month
        from tb_temp
    
    
    数据分析
    select shop,
           category,
           salevalue,
           decode(onmonth,
                  0,
                  '∞',
                  round((salevalue - onmonth) / onmonth * 100, 2)) onmonth,
           decode(onmonth,
                  0,
                  '∞',
                  round((salevalue - onyear) / onyear * 100, 2)) onyear,
           month
      from tb_analysis
    
    展开全文
  • 同比 上卷 下钻 MDX Query Context and Execution Filter:返回根据搜索条件对指定集进行筛选后得到的集。 它对上下文敏感!!! 语法:Filter(Set_Expression, Logical_Expression ) String mdxStr_140 =...

    关键词:

    Filter

    环比

    同比

    上卷

    下钻

    MDX Query Context and Execution

    Filter:返回根据搜索条件对指定集进行筛选后得到的集。

    它对上下文敏感!!!

    语法:Filter(Set_Expression, Logical_Expression )

            String mdxStr_140 ="select non empty{[Account].Children} on columns,{Filter({[Time].[2017].[4].[11],[Time].[2017].[4].[12]},[Measures].[金额]>10000)} on rows " +
                    "from [Col_trade_detail]  ";
    //错误?
            String mdxStr_142 ="select non empty{[Account].Children} on columns,{Filter([Time].[Year].Members,[Measures].[金额]>10000)} on rows " +
                    "from [Col_trade_detail]  ";

    结果:

    需要注意的是:msdStr_142 语句不是错了,而是有的年份有空值!所有什么也过滤不出来,空值参与运算,后面需要总结一下。

    相关比对语句如下:

        String mdxStr_144="SELECT Filter({[Account].[Level1projectname].Members},[Measures].[金额]>10000000)on axis(0) FROM  [Col_trade_detail] where ([Time].[2017],[Measures].[金额])";
     //----去掉条件  啥也查不出来,原因是默认的维度成员有空值引起的?
            String mdxStr_145="SELECT Filter({[Account].[Level1projectname].Members},1)on axis(0) FROM  [Col_trade_detail] ";
            String mdxStr_146="SELECT Filter({[Account].[Level1projectname].Members},1)on axis(0) FROM  [Col_trade_detail] where ([Measures].[金额])";
            //下面的语句 如果把[Time].[2017] 换成[Time].[2005],则什么也没有
            String mdxStr_146_1="SELECT Filter({[Account].[Level1projectname].Members},[Measures].[金额]>10000000)on axis(0) FROM  [Col_trade_detail] where ([Time].[2017],[Measures].[金额])";
            String mdxStr_147="SELECT Filter([Account].[Level1projectname].Members,[Measures].[金额]>10000000)on axis(0) FROM  [Col_trade_detail] where ([Time].[2005])";

    后面的内容:

    环比:

            String mdxStr_151="with member [Measures].[环比] as "+
                    "'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
            " select {[Measures].[金额],[Measures].[环比]} on  axis(0),{[Time].[2017].Children} on rows  from [Col_trade_detail] "+
            " where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
            //这里我想求全部年度的的季度及月份的环比? 首先查2017年第4季度前面30个季度的同比情况
            String mdxStr_152="with member [Measures].[环比] as "+
                    "'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
                    " select {[Measures].[金额],[Measures].[环比]} on  axis(0),{[Time].[2011].[4]:[Time].[2017].[4]} on rows  from [Col_trade_detail] "+
                    " where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
    
            String mdxStr_153="with member [Measures].[环比] as "+
                    "'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
                    " select {[Measures].[金额],[Measures].[环比]} on  axis(0),{[Time].[2017].[4].Lag(20):[Time].[2017].[4]} on rows  from [Col_trade_detail] "+
                    " where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
    
    
           String mdxStr_151="with member [Measures].[环比] as "+
                    "'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
            " select {[Measures].[金额],[Measures].[环比]} on  axis(0),{[Time].[2017].Children} on rows  from [Col_trade_detail] "+
            " where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
            //这里我想求全部年度的的季度及月份的环比? 首先查2017年第4季度前面30个季度的同比情况
            String mdxStr_152="with member [Measures].[环比] as "+
                    "'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
                    " select {[Measures].[金额],[Measures].[环比]} on  axis(0),{[Time].[2011].[4]:[Time].[2017].[4]} on rows  from [Col_trade_detail] "+
                    " where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
    
            String mdxStr_153="with member [Measures].[环比] as "+
                    "'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
                    " select {[Measures].[金额],[Measures].[环比]} on  axis(0),{[Time].[2017].[4].Lag(20):[Time].[2017].[4]} on rows  from [Col_trade_detail] "+
                    " where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
    
    //修正  应对前一期可能为0的情况  iif 有问题?
            String mdxStr_154="with member [Measures].[环比] as "+
                    "'IIF(([Measures].[金额]=0),null," +
                    "[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1)', FORMAT_STRING=\"0%\""+
                    " select {[Measures].[金额],[Measures].[环比]} on  axis(0),{[Time].[2017].[4].Lag(20):[Time].[2017].[4]} on rows  from [Col_trade_detail] "+
                    " where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";

     环比结果:

    公安行业行政事业收费有个有趣的特点,每年第一个季度,行政事业收费环比都大幅上升,为什么呢,恐怕得结合行业特点去了解。

    iif:

    根据布尔条件为 true 还是 false,计算不同的分支表达式。

    语法:IIf(Logical_Expression, Expression1 [HINT <hints>], Expression2 [HINT <hints>])

    同比:

    cousin:返回与指定的子成员在父成员下方具有相同的相对位置的子成员。

    Cousin( Member_Expression , Ancestor_Member_Expression )

    例子:

     String mdxStr_160="SELECT Cousin([Time].[2017].[4],[Time].[2016]) ON 0  FROM [Col_trade_detail]";

    结果:

     

    同比:

     

            String mdxStr_160="SELECT Cousin([Time].[2017].[4],[Time].[2016]) ON 0  FROM [Col_trade_detail]";
            String mdxStr_161="WITH MEMBER Measures.[同比] AS"+
                    "'[Measures].[金额]/([Measures].[金额], Cousin([Time].CurrentMember, [Time].CurrentMember.Parent.PrevMember))- 1', FORMAT_STRING = \"0%\""+
            " SELECT {[Measures].[金额], Measures.[同比]} ON 0,"+
                    "{[Time].[2011].[1]:[Time].[2017].[4]} ON 1"+
            "   FROM [Col_trade_detail] where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
            String mdxStr_162="WITH MEMBER Measures.[同比] AS"+
                    "'[Measures].[金额]/([Measures].[金额], Cousin([Time].CurrentMember, [Time].CurrentMember.Parent.PrevMember))- 1', FORMAT_STRING = \"0%\""+
                    " SELECT {[Measures].[金额], Measures.[同比]} ON 0,"+
                    "{[Time].[2008].[1]:[Time].[2017].[4]} ON 1"+
                    "   FROM [Col_trade_detail] where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入].[公民出入境证件费]";

    结果:

    用ParallelPeriod也很容易形成同比,直接上例子:

            String mdxStr_167="WITH MEMBER Measures.[同比] AS"+
                    "'([Measures].[金额]-([Measures].[金额],ParallelPeriod([Time].[Year],1,[Time].[Quarter].currentMember)))/" +
                    "([Measures].[金额],ParallelPeriod([Time].[Year],1,[Time].[Quarter].currentMember))', FORMAT_STRING = \"0%\""+
                    " SELECT {[Measures].[金额], Measures.[同比]} ON 0,"+
                    "{[Time].[2011].[1]:[Time].[2017].[4]} ON 1"+
                    "   FROM [Col_trade_detail] where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";

    结果:

    可以看出:mdxStr_167与mdxStr_161语句是一样的。

    上卷:

     

    下钻:

    下钻我理解是DrilldownLevel函数的应用,

    DrilldownLevel:Drills down the members of a set to one level below the lowest level represented in the set.

    DrilldownLevel(Set_Expression [,[Level_Expression] ,[Index]] [,INCLUDE_CALC_MEMBERS])

    例1:

            String mdxStr_171="SELECT  non empty DrilldownLevel({[Account].[Account_L].[行政事业性收费收入]})  ON COLUMNS  from [Col_trade_detail] " +
                    " where [Time].[2017]";

     结果:

    ps:如果不限定[Time].[2017],前面的年份是年份,什么都查不出来!空值的处理,后面需要专题学习、测试。

    本节未完,待续.....

    上一章节:Common Calculations and Selections in MDX

    下一章节:动态sql

    展开全文
  • https://zhidao.baidu.com/question/570950020.html
    展开全文
  • 同比环比

    千次阅读 2019-03-04 11:10:20
    我们在分析数据走势时,经常会用到同比环比。 但是,我们却经常将同比环比弄混淆。 那么,到底同比环比的区别是什么?又该如何计算呢? 一丶同比 为了方便理解,我们使用2018年和2017年的数据来进行说明。...
  • pandas计算环比与同比

    千次阅读 2019-08-21 09:08:44
    环比与同比是数据分析中最常用的计算方法之一,pandas内置的函数可以很方便的计算,其简单程度不亚于使用excel
  • 本文将介绍用分析服务SSAS如何解决占比、同比环比三个指标。 首先理解一下这三个指标的基本概念: 占比是指当前成员的值该成员父级的值的比率,意思是在总数中所占的比重,比如某水果商店总销售额为14,其中...
  • 本篇文章是对oracle求同比,环比函数(LAGLEAD)进行了详细的分析介绍,需要的朋友参考下
  • R语言中同比增长和环比增长

    千次阅读 2015-01-22 19:24:30
    同比增长:与上个周期的同一天或者同一个... 下面,以某个论坛的军事科技版本的每日浏览量,来制造一个条形图,并依据上周和本周数据分为两组进行展示,进而分析同比增长与环比增长的区别。原始数据如表(一)所示。
  • 同比环比

    2009-01-21 20:05:56
    在经济社会统计事务中,人们经常会发现“同比”环比”这两个概念。比如在统计年报中,在某具体统计计量...1.同比分析:一般指本期水平上年同期水平的对比数值分析。 统计指标按其具体内容、实际作用和表...
  • 浅析“同比环比

    万次阅读 2006-03-07 20:48:00
    在经济社会统计事务中,人们经常会发现“同比”环比”这两个概念。比如在统计年报中,在某具体统计计量指标列的...1.同比分析:一般指本期水平上年同期水平的对比数值分析。 统计指标按其具体内容、实际作用和
  • 在sql 中会用到显示前/后一行内容,或者前/后一行值作比较,这时就可以用到lead和lag函数。 lead(arg1,arg2) arg1表示列名,arg2表示向后行偏移量,默认为1。 当找不到值时返回null 。 lag(arg1,arg2) ...
  • 稍加分析可知,这是一道典型的求同比环比类型的题目。 知识点梳理 同比一般情况下是今年第n月去年第n月比。同比发展速度主要是为了消除季节变动的影响,用以说明本期发展水平去年同期发展水平对比而达到的...
  • 环比同比的区别

    2010-03-30 16:28:47
        ...期间某些经济现象的发展趋势,环比同比更说明问题。 什么是同比同比发展速度主要是为了消除季节变动的影响,用以说明本期发展水平去年同期发展水平对比而达到的相对发展速度。...
  •  累计、同比环比是 BI 项目中常用的分析方法。本文讲述如何利用 Oracle BIEE 的时间维(Time Dimension)及时间轴函数(Time Series Conversion Function)实现累计、同比环比计算。本文使用的示例数据可以通过...
  • 数据来源: 中国电子表格应用大会制作工具: Smartbi分析报告功能——直接用Word刷出来的数据分析报告!... 2016年第一季度(前3个月)相比 同比增长率为空,此车型去年同期未上市销售 同比增长率
  • title layout categories tags excerpt ... C语言贪吃蛇算法详细分析与源代码 经典的贪吃蛇游戏算法,无疑是一个较大的挑战,综合性较高,像我这种刚入门C语言的也差不多花了整...
  • 作为一名数据分析师在日常制作报表时经常会用到同比环比的计算,用来反映某一阶段相比某个指标的变化程度。同比历史同一时期比较,即不同年份的同一时期作比较,例如2021年4月2020年...
  • mdx常用计算之环比与同期

    千次阅读 2009-04-23 11:00:00
    同比环比计算是企业应用、电子商务应用中常用的计算方法,也是常用的数据分析手段。写这篇文章也是因为最近在学习MDX相关的一些计算方法的同时回想到原来我在项目中使用过的一些类似的,利用SQL来完成的统计计算,...
  • 大数据时代的经营分析与专题分析;这是什么;目录;大数据时代的分析思想变革;大数据分析的应用案例;运营商的大数据应用场景;大数据分析的局限性;解释清楚以下问题是合格分析师;...环比/同比/定基比;新增与流失的数据案例
  • 环比

    2011-07-12 10:46:00
     历史同时期比较,例如2005年7月份2004年7月份相比,叫同比。 环比发展速度是报告期水平前一时期水平之比,表明现象逐期的发展速度。如计算一年内各月前一个月对比,即2月比1月,3月比2月,4月比3月……12...
  • ;项目导入 作为一名网店运营经理每到...店铺整体业绩可参考生意参谋或生意经中的数据重点分析行业大盘增长率情况同比增长情况环比增长情况店铺核心数据指标可参考生意参谋重点分析转化率客单价销售额DSRPVUV加购收藏情
  • 作为数据分析师,经常遇到某个指标异常波动(如日活同比环比大幅下降)的分析需求,很多数据分析都有为此而苦恼的经历。 如何解决指标波动的分析问题呢?掌握常见指标波动的分析方法,再结合行业知识和公司业务...
  • B站Q4财报解读业务分析 一、 运营数据 1、用户活跃数据 第四季度B站月活用户同比增长55%,达2.02亿;其中移动端月活用户同比增长61%,达1.87亿。与此同时,日活用户达5400万,实现了42%的同比增长,这标志着用户...
  • 上一篇我们学习了如何利用排名窗口函数实现产品的分类排名,以及利用取值窗口函数进行销量的环比/同比分析。 本篇我们介绍 SQL:2016 标准新增的一个功能:行模式识别(Row Pattern Recognition)。 行模式识别 行...
  • 数据分析基础面试题

    千次阅读 多人点赞 2020-01-04 15:08:49
    1.同比与环比表示什么 同比:与历史同时期比较,就是与不同年份的同一时期作比较 例如:2019年7月份与2018年7月分相比 环比:与上一统计段比较,就是与前一个相邻的时期作比较 例如:2019年7月分与2019年6月份...
  • 分析方法

    2021-03-04 10:53:27
    分析方法 1.金字塔原理:论证类比 论:结论先行—总分总 ...同比同比增长率 = (本期数-上同期数)/上同期数 3.对比分析: 时间标准:时间趋势对比/动作前后对比/去年同期对比/前一时期对比 空间标准:A/B测试
  • Oracle分析函数——分析函数案例 环比  环比就是现在的统计周期和上一个统计周期比较。例如2008年7月份2008年6月份相比较称其为环比。...如分析抗击"非典"期间某些经济现象的发展趋势,环比同比更说明问...

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
关键字:

同比分析与环比分析