精华内容
下载资源
问答
  • 下面是我简单查询出来的数据,要求1月和1月比较,2月和2月比较等增幅太大就查询出来,(有的增长幅度)只有一个大概计算就行,我能看懂, ![图片说明]...
  • 最近需要做一个统计数据的报表,然后遇到了当数据为0的时候怎么进行数据同比 一直提示除数为0,我的sql粘贴如下,在线等答案~ select a.*, nvl(round(a.cr/lag(a.cr) over(partition by month order by a.stat_...
  • Oracle求同比SQL

    千次阅读 2018-02-28 13:55:42
    求原始数据JS.TOPARTYNAME(购电方)的同比增长率2.求原始数据华东购电(总计)=上海+江苏+浙江+福建+安徽的同比增长率分析过程:1.首先,我们要理解什么是同比?同比一般情况下是今年第n月与去年第n月比。同比发展速度...
     

    计算需求:
    1.求原始数据JS.TOPARTYNAME(购电方)的同比增长率

    2.求原始数据华东购电(总计)=上海+江苏+浙江+福建+安徽的同比增长率

    分析过程:
    1.首先,我们要理解什么是同比?
    同比一般情况下是今年第n月与去年第n月比。同比发展速度主要是为了消除季节变动的影响,
    用以说明本期发展水平与去年同期发展水平对比而达到的相对发展速度。如,本期2月比去年2月,本期6月比去年6月等。
    那么,我们求的是同比增长率,其公式见下:

    同比增长率=(本期数-同期数)/同期数*100% 指和去年同期相比较的增长率

     

    2.理解同比的基本概念后,我们要知道在Oracle同比的基本求法?

    这里我要介绍下Oracle的Lag函数:
    Lag分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)作为独立的列。
    这种操作可以代替表的自联接,并且LAG有更高的效率。
    /*语法*/
    lag(exp_str,offset,defval) over()
    --exp_str要取的列
    --offset取偏移后的第几行数据
    --defval:没有符合条件的默认值

     

    同时使用NVL和Round函数:

    NVL函数格式为:

    NVL( string1, replace_with)

    功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。

    Round函数语法:
    round(number,digits) 
    参数:
    number,要四舍五入的数,digits是要小数点后保留的位数
      --如果 digits 大于 0,则四舍五入到指定的小数位。 
      --如果 digits 等于 0,则四舍五入到最接近的整数

     --如果 digits 小于 0,则在小数点左侧进行四舍五

    3.了解oracle求同比的基本用法,我们需要具体应用到源是数据查询中,但是分析原始数据,发现源数据并不是规律连续的,见下图

    那么这带来的问题是我们并不能向上面讲的那样简单的去使用lag函数了,那怎么办呢?

    想到先整理数据后,再去使用函数分析查询是一个好办法,于是有了下方的解决办法:

    A.求原始数据JS.TOPARTYNAME(购电方)的同比增长率

    with tb as(
     select to_char(t.t_date, 'YYYY') year, to_char(t.t_date, 'MM') month, t.*
     from TRY_OPT_MON_ELEC_JS t
     where t.FYGZ = 'Z'
       and t.js_elec <> 0
       and t.js_kind in ('四川水电送华东月度1', '四川水电送华东短期2', '四川水电送华东短期3', '四川水电送浙江年度',
            '四川水电送江苏年度', '三峡送华东', '向家坝送上海交易', '锦东锦西官地送江苏交易',
            '四川水电送华东短期1', '溪洛渡送浙江', '锦东锦西官地送江苏交易', '溪洛渡左岸送浙江交易')
    )
    select max(t.t_date) 日期,
           t.topartyname 购电方,
           t.js_elec 结算电量,
           t.js_kind 结算品种,
           nvl(round(((t.js_elec - (lag(t.js_elec,1) over(partition by t.month, t.topartyname,t.js_kind order by t.year)))
           /((lag(t.js_elec,1) over(partition by t.month, t.topartyname,t.js_kind order by t.year))))*100,2),'0')||'%' as 同比
     from tb t
     where 1=1
     group by t.js_kind,t.topartyname, t.year, t.month, t.js_elec
     order by t.month

    思路分析:
    1.创建临时表tb 
    2.把t_date日期字段拆分为年、月两个字段方便分组,筛去js_elec(售电量)为零的记录是,筛去不需要的js_kind(结算品种)
    3.使用lag分析函数求得同比值
    4.使用round函数格式化两位小数

    5.使用nvl函数满足空值补零

    查询结果:

    B.求原始数据华东购电(总计)=上海+江苏+浙江+福建+安徽的同比增长率

    with tb as(
     select to_char(t.t_date, 'YYYY') year, to_char(t.t_date, 'MM') month, t.*
     from TRY_OPT_MON_ELEC_JS t
       where t.FYGZ = 'Z'
       and t.js_elec <> 0
       and t.js_kind in ('四川水电送华东月度1', '四川水电送华东短期2', '四川水电送华东短期3', '四川水电送浙江年度',
            '四川水电送江苏年度', '三峡送华东', '向家坝送上海交易', '锦东锦西官地送江苏交易',
            '四川水电送华东短期1', '溪洛渡送浙江', '锦东锦西官地送江苏交易', '溪洛渡左岸送浙江交易')
       and t.topartyname in ('上海','江苏','浙江','福建','安徽')
    )
    ,tb2 as(
    select max(t.t_date) t_date, sum(t.js_elec) js_elec, t.year, t.month
    from tb t
    group by t.year, t.month
    )
    select max(t.t_date) 日期,
           '华东' 华东,
           t.js_elec 结算电量,
           nvl(round(((t.js_elec - (lag(t.js_elec,1) over(partition by t.month order by t.year)))
           /((lag(t.js_elec,1) over(partition by t.month order by t.year))))*100,2),'0')||'%' as 同比
     from tb2 t
     where 1=1
     group by t.year, t.month, t.js_elec
     order by t.year,t.month

    思路分析:
    1.创建临时表tb 
    2.把t_date日期字段拆分为年、月两个字段方便分组,筛去js_elec(售电量)为零的记录是,筛去不需要的js_kind(结算品种)和不是华东区的购电单位
    3.使用lag分析函数求得同比值
    4.使用round函数格式化两位小数

    5.使用nvl函数满足空值补零

    查询结果:

    展开全文
  • QlikView图表显示同比数据

    千次阅读 2014-08-30 17:30:15
    QlikView中的同比分析图

    数据准备如下:

    SalesData:
    LOAD
    	Num(ID) as ID,
    	Date(Date) as Date,
    	Month,
    	Num(Year) as Year,
    	Num(Sales) as Sales
    Inline [
    ID, Date, Month, Year, Sales
    1, 2012-1-1, 1, 2012, 20
    2, 2012-1-1, 2, 2012, 21
    3, 2012-1-1, 3, 2012, 23
    4, 2013-1-1, 1, 2013, 34
    5, 2013-2-1, 2, 2013, 35
    6, 2013-3-1, 3, 2013, 46
    7, 2014-1-1, 1, 2014, 27
    8, 2014-2-1, 2, 2014, 30
    9, 2014-3-1, 3, 2014, 49
    ];
    


    新建线形图表命名为Sales,如图所示,

     

    将Month作为维度,如图所示:

     

    在表达式那个tab中新建两个Expression 如下所示:

     

    ActualSales的表达式如下:

    =Sum({$<
    	Year={'$(=Max(Year))'}
    >}Sales)


    PCPSales的表达式如下:

    =Sum({$<
    	Year={'$(=Max(Year)-1)'}
    >}Sales)
    


    点击确定,生成如下图表:

     

    如有疑问,欢迎留言交流。

     

    最近还会再写的几个Topic::

    1. 显示所选时间前12个月销售数据;

    2. 显示上一销售级别的销售;

    3. 计算最近一年的销售数据。

    展开全文
  • python计算公司销售额的同比增长率

    万次阅读 2018-11-10 11:32:40
    同比、环比一直在很多场合中广泛地被使用到,今天是基于一个小数据集来计算一下销售额的同比增长率,对于同比和环比的了解之前主要是来源于业务方面的需求,这里为了更加准确定义同比,贴上百度百科的定义如下: ...

         同比、环比一直在很多场合中广泛地被使用到,今天是基于一个小数据集来计算一下销售额的同比增长率,对于同比和环比的了解之前主要是来源于业务方面的需求,这里为了更加准确定义同比,贴上百度百科的定义如下:

    比如说2017年8月的产值100万,2018年8月的产值300万,同比增长为:(300-100)÷100*100%=200% 
    同比增长率一般是指和上一年同期相比较的增长率。
    某个指标的同比增长率=(现年的某个指标的值-上年同期这个指标的值)/上年同期这个指标的值。
    某个指标的同期比=(本年的某个指标的值-去年同期这个指标的值)/去年同期这个指标的值

        数据集如下:

        数据集中的数据记录数量很少,一共50条记录左右,具体同比计算实践如下:

    #!usr/bin/env python
    #encoding:utf-8
    from __future__ import division
    
    
    '''
    __Author__:沂水寒城
    功能:计算企业销售额的同比增长率
    '''
    
    import sys
    import xlrd
    reload(sys)
    sys.setdefaultencoding("utf-8")
    
    
    def dataPairCal(one,two):
        '''
        单对同期数据计算
        '''
        if one and two:
            return two/one-1
        else:
            return 0
    
    
    def handleData(datapath='data.xlsx'):
        '''
        从Excel中抽取出来数据,并计算同比
        '''
        data_dict,res_dict={},{}
        for year in [2016,2017,2018]:
            data_dict[year]={}
            for one in range(1,13):
                data_dict[year][one]=0
        workbook=xlrd.open_workbook(datapath,'rb')
        sheet_one=workbook.sheets()[0]
        row_num,col_num=sheet_one.nrows,sheet_one.ncols
        name_list=[]
        for i in range(4,row_num):
            company,money=sheet_one.cell_value(i,0),sheet_one.cell_value(i,1)
            month,year=sheet_one.cell_value(i,2),sheet_one.cell_value(i,3)
            data_dict[year][month]=money
        print data_dict
        dict1,dict2,dict3=data_dict[2016],data_dict[2017],data_dict[2018]
        for i in range(1,13):
            one_tmp_key='2016_2017_'+str(i)
            res_dict[one_tmp_key]=dataPairCal(dict1[i],dict2[i])
        for i in range(1,13):
            one_tmp_key='2017_2018_'+str(i)
            res_dict[one_tmp_key]=dataPairCal(dict2[i],dict3[i])
        print res_dict
    
    
    
    
    
    
    
    if __name__ == '__main__':
        handleData(datapath='data.xlsx')

        结果如下:

    {2016: {1: 0, 2: 0, 3: 2932137.0, 4: 5601712.0, 5: 4555366.0, 6: 7754956.0, 7: 3190944.0, 8: 19781.0, 9: 10909596.0, 10: 1697156.0, 11: 16921888.0, 12: 673851.0}, 2017: {1: 690055.0, 2: 584111.0, 3: 947528.0, 4: 579917.0, 5: 539401.0, 6: 459675.0, 7: 485340.0, 8: 9544196.0, 9: 6345747.0, 10: 12599740.0, 11: 4262813.0, 12: 14145928.0}, 2018: {1: 13135177.0, 2: 1773997.0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}}
    
    
    
    {'2016_2017_8': 481.4930994388555, '2016_2017_9': -0.4183334561609797, '2016_2017_6': -0.9407250021792516, '2016_2017_7': -0.8479008092902915, '2016_2017_4': -0.8964750419157572, '2016_2017_5': -0.8815899754267824, '2016_2017_2': 0, '2016_2017_3': -0.676847296016523, '2016_2017_1': 0, '2016_2017_10': 6.424031733087589, '2016_2017_11': -0.7480888066390701, '2016_2017_12': 19.99266455047184, '2017_2018_10': 0, '2017_2018_11': 0, '2017_2018_12': 0, '2017_2018_2': 2.037088840990839, '2017_2018_3': 0, '2017_2018_1': 18.034971125489996, '2017_2018_6': 0, '2017_2018_7': 0, '2017_2018_4': 0, '2017_2018_5': 0, '2017_2018_8': 0, '2017_2018_9': 0}
    

        结果中2016_2017_8表示的是2017年和2016年8月销售额的同比分析计算结果,很简单的小功能,主要是熟悉一下同比的概念。

    展开全文
  • Tableau计算同比和环比任意天数据

    千次阅读 2020-05-12 18:18:51
    网上看了很多帖子,要实现同比和环比都是用lookup函数,但是如果我要同时看很多维度的同比数据并没有顺序,操作起来就比较麻烦了。 现在用一个比较简单的fixed函数来实现这个功能。看看fixed函数的用法: 例如...

            网上看了很多帖子,要实现同比和环比都是用lookup函数,但是如果数据并没有顺序或者一个月有很多行数据操作起来就比较麻烦了。

    现在用一个比较简单的fixed函数来实现这个功能。看看fixed函数的用法:

    这是个超级强大的函数,可以跨层级固定住指定的维度,甚至做得比较SQL还简便,例如超市里面想看顾客买牛奶的同时又购买了什么,对于结构化数据如果写SQL需要先计算出含有牛奶的订单号再查看这些订单明细一共需要扫描两次,这只是看一个产品而已,如果看N个产品呢?计算量是非常大的,但是用fixed函数一次就可以同时查看N个产品的情况。

    ,再例如想看到明细的同时又看到汇总信息 ,会员的RFM求出每个会员最后消费日期等等,更多fixed函数的应用推荐这个链接,里面有各种LOD表达式的用法。

    下面举例,要看某城市昨天相比上周同一天的销售增长。

    首先,计算昨天的销售额,我把门店固定住,找昨天的销售额,创建计算函数

    {FIXED [StoreID] : SUM(if [SalesDate]=TODAY()-1 then [netsales] end)}

    这里利用tableau实现了sumif效果

    然后把门店固定住,计算上周同一天的销售额

    最后计算环比上周,搞定

    我们可以把负增长的数据表示出来

    效果如下:

    展开全文
  • 数据结构

    千次阅读 多人点赞 2018-10-06 17:40:36
    数据结构 ...数据结构往往高效的检索算法和索引技术有关。 数据结构是ADT(抽象数据类型)的物理实现。 程序 = 数据结构 + 算法 算法是为了解决问题而设计的,数据结构是算法需要处理问题的载体。 ...
  • 就可以获取一只股票的总资产同比增长率 与 净资产同比增长率了。   import baostock as bs import pandas as pd   # 登陆系统 lg = bs.login() # 显示登陆返回信息 print('login respond error_code:'+lg.error_...
  • sql同比环比 简单示例

    千次阅读 2019-12-12 17:46:58
    SQL同比-简单示例 同比:一般情况下是今年第n月与去年第n月比 创建一个简单的登录活动记录表 drop table if EXISTS logintime; create table logintime ( logincode VARCHAR(10), usercode VARCHAR(10...
  • 基于Python的数据分析

    万次阅读 多人点赞 2019-02-25 15:50:02
    下面来介绍一下基于Python的数据分析,主要介绍数据分析的概念、数据分析流程、Python优势、常用模块的用途以及使用 Python进行数据分析的学习方法及步骤; 随着大数据和人工智能时代的到来,网络和信息技术开始...
  • (用在监控业务指标上很合适,单纯的阈值监控好用,因为某些指标可能在周末或者凌晨是低峰期,单纯阈值告警可能有遗漏情况发生)表达式写法:下图, 是计算当前时间和上一周这个时刻的数据波动情况(表达式里面我加...
  • sql语句下的同比,环比操作

    千次阅读 多人点赞 2020-07-01 00:44:26
    sql语句下的同比,环比操作 题目:有两个表 表一:销售明细 表二:产品明细 需求:查询2020年,每月的销售额,以及同比环比,并按照年月进行升序排序 建数据库 建表 插入数据 偷个懒,这些语句就先省略了 给看个截图...
  • MySQL计算环比、同比(年、月、季度)

    万次阅读 多人点赞 2019-08-06 12:50:46
    MySQL计算环比、同比(年、月、季度) 环比 所谓“环比”即连续2个单位周期(比如连续两月)内的量的变化比。如今年8月比今年7月。 当然这里的单位不一定是月,可以是任何时间单位。 环比增长率=(本期数-上期数)/...
  • SQL计算月环比、月同比

    千次阅读 2020-08-17 17:51:37
    在工作的过程中,经常会使用到环比、同比,那关于如何用SQL去写环比和同比呢?非常简单,用interval函数,轻松实现。 interval 1 month,环比 interval 1 year ,同比 一、准备数据 为了快速理解,我建了一个表,关于...
  • Python使用Pandas入门数据分析

    千人学习 2020-06-05 15:17:07
    近几年数据分析是一个非常火非常热门的职位,而Python作为数据分析领域的王者语言,其技术能力的核心就是Pandas,使用它可以完成CSV/EXCEL/MYSQL等数据源的读取、数据各种过滤转换聚合的计算、然后输出到文件或者...
  • 同比日期的获取(公历与农历)

    千次阅读 2019-03-13 19:25:17
    在进行宏观数据和中观数据研究分析分的时候,经常会用到同比的概念。宏观数据一般都是月度的,所以一般一二月份由于春节效应,会合起来考虑;但是中观数据的频率有时候会比较高,比如周度或者旬度的数据。 这些...
  • 如图,我想同比每年对应月份的cr值,也就是,今年比上年的是增加了还是减少了,然后用得是lag over函数,我并没有深入的了解过这两个函数,然后最后的结果就是,因为cr里面存在0,所以,进行数据同比的时候会报错,...
  • 在Power BI中如何计算同比增长?

    千次阅读 2020-06-15 13:11:35
    在Power BI中计算同比增长
  • 同比和环比的计算方式

    千次阅读 2019-10-05 11:05:53
    一、同比 了方便理解,我们使用2018年和2017年的数据来进行说明。 同比的概念。我们可以理解为:今年同期和去年同期的对比。 例如:2018年1月与2017年1月的数据对比。 计算公式 (2018年1月数据-2017年1月...
  • Tableau同比或环比计算方法

    千次阅读 2020-08-27 09:26:32
    笔者借鉴学习了6种tableau同比或环比计算方法 方法1:官方提供的快速表计算:年度同比增长 方法2:筛选年份同比上一年 方法3:通过设定日期月度范围来比较销售额 方法4:
  • ORACLE计算同比环比

    千次阅读 2020-07-06 14:19:18
    同比环比概念和公式 同比: 同比一般情况下是今年第n月与去年第n月比 环比: 表示连续2个统计周期(比如连续两月)内的量的变化比。 同比增长率=(本期数-同期数)/|同期数|×100% 环比增长率=(本期数-上期数)/上期...
  • pandas计算环比与同比

    千次阅读 2019-08-21 09:08:44
    环比与同比数据分析中最常用的计算方法之一,pandas内置的函数可以很方便的计算,其简单程度不亚于使用excel
  • java 计算同比增长工具类

    千次阅读 2019-08-06 17:50:58
    java计算同比增长率的工具类 为了数据的严谨性,统一装换为BigDecimal,话不多说,看代码。 欢迎大家加群 进行讨论 qq群:714398799 package com.pig4cloud.pigx.admin.api.util; import java.math.BigDecimal; ...
  • 数据分析面试题

    万次阅读 多人点赞 2018-12-14 12:46:24
    数据分析面试题 1.一家超市的顾客数据,将数据可视化并分析销售额和年龄、收入的关系并给出营销建议 年龄 收入 销售额 34 350 123 40 450 114 37 169 135 30 189 139 44 183 117 36 80 121 32 ...
  • SQL 求同比 环比

    万次阅读 2017-02-26 11:24:13
    1)得到同比数据 部门 对比年月 本月销售总量 去年同期销售总量 同比 营销一部 2006-07-01 300.00 NULL 无穷大 营销二部 2006-07-01 500.00 NULL 无穷大 营销三部 2006-08-01 800.00 NULL 无穷...
  • Java计算同比环比

    千次阅读 2020-08-31 14:39:28
    同比率计算公式:rate = (本年数据 - 前一年数据) / 前一年数据 实例:2020年10月游客数量为80W,2019年10月游客数量为100W,2018年10月游客数量为90W 2020年同比率为:rate :(80 - 100)/100 * 100%= -20% 2019年...
  • 提供大量准确、完整的证券历史行情数据、上市公司财务数据、实时证券行情推送服务等。通过python API获取证券数据信息,满足量化交易投资者、数量金融爱好者、计量经济从业者数据需求。 本次介绍 接口:获取季频盈利...
  • SQL 同比、环比计算公式及实例演示

    千次阅读 2021-04-01 23:48:21
    同比数据计算公式: 同比:一般情况下是今年第n月与去年第n月比 计算方式:同比增长率=(本期数-同期数)÷同期数×100% 所以要有个本期数据与同期数据一一对应的表,那就要本期数据与同期数据分离 环比数据计算...
  • SQL 统计日环比、周同比

    万次阅读 2019-03-01 19:12:41
    date gmv 2019-01-01 115.7 2019-01-02 180.1 2019-01-03 296.8 2019-01-04 706.0 2019-01-05 703.5 2019-01-06 527.3 2019-01-07 462.9 ... 2019-01-09...
  • Power BI中计算同比、环比

    万次阅读 2019-06-25 14:28:13
    财务需求中经常要求计算数据同比、环比,下面介绍如何在Power BI 中创建用来计算同比和环比的度量值(SSAS模型中同理)。。。 现在表中有金额,时间(时间需要年月日格式),计算同比 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,197,120
精华内容 478,848
关键字:

同比数据怎么算