• 如何实现基于当前日期的历史数据对比可视化


    在做数据分析时,每天查看数据时,需要对当前日期数据和历史同期数据进行数据可视化对比分析,以分析数据的变化情况。
    例如:当前日期为2020年3月13日,需要分析上月当日或者去年当日数据和本期的对比,即要分析2020年2月13日和2020年3月13日的对比、2019年3月13日和2020年3月13日的对比、2020年3月12日和2020年3月13日的对比等同期或环期对比场景。
    随着时间的推移,对应的对比周期会同步发生变化。

    要点:使用自定义数据集实现基于当前日期的数据查询

    主要思路:在数据库中获取当前日期,基于当前日期,使用自定义sql获取同期或环期数据作为数据集,创建图表。
    添加自定义表的方法请参见帮助文档:https://help.grapecity.com.cn/pages/viewpage.action?pageId=30261202
    本文中的语句以SqlServer为例。

    1.和同期前一天的数据进行对比:例如今天是2020-03-13,即与前一天2020-03-12进行对比;
    自定义数据集SQL写法:
    select *,'本期' 周期 from 测试数据 where 日期=convert(varchar(10),GETDATE(),120)
    union
    select *,'上期' 周期 from 测试数据 where 日期=convert(varchar(10),GETDATE()-1,120)

    效果图: 




    2.和去年同一天数据进行对比:例如今天是2020-03-13,即与去年当天 2019-03-13进行对比。
    自定义数据集SQL写法:
    select *,'本期' 周期 from 测试数据 where 日期=convert(varchar(10),GETDATE(),120)
    union
    select *,'上期' 周期 from 测试数据 where 日期=convert(varchar(10),dateadd(YEAR,-1,GETDATE()),120)
    效果图:


    3.与上月同一天数据进行对比:例如今天是2020-03-13,即与上月2020-02-13进行对比。
    select *,'本期' 周期 from 测试数据 where 日期=convert(varchar(10),GETDATE(),120)
    union
    select *,'本期' 周期 from 测试数据 where 日期=convert(varchar(10),dateadd(month,-1,GETDATE()),120)
    效果图:


    如果计算周期为年、季度、月、周等,与本文中日的实现方法类似。

  • 相关阅读:
    十问5.12汶川大地震
    JZ035数组中的逆序对
    JZ037数字在排序数组中出现的次数
    JZ039平衡二叉树
    JZ033丑数
    JZ040数组中只出现一次的数字
    JZ032把数组排成最小的数
    JZ036两个链表的第一个公共结点
    JZ034第一个只出现一次的字符位置
    JZ031从 1 到 n 整数中 1 出现的次数
  • 原文地址:https://www.cnblogs.com/edoo/p/13502133.html
Copyright © 2020-2023  润新知