使用 SQL 实现同比环比分析
场景描述
在做数据分析时,经常会需要展示同比和环比的数据,可以通过 SQL 来完成同比和环比的计算,再配合数据可视化工具进行展示,每个月都会自动展示当月数据与上月的对比(环比),以及当月数据与去年同期数据的对比(同比);
效果展示
我先看一下将同比、环比的数据放到数据看板上的效果图:
上图是将某公司的销售数据做了同比和环比分析后,通过报表展示出来的效果,包含:线上线下销量的同比环比、各大区的销量月环比。
实现过程
测试数据预览
以下是我们分析的原始数据,数据来源于真实业务记录,所以部分数据进行了遮挡处理;
我们重点关注的数据:
- 每条数据代表一单销售业绩;
- “类型” 包含线上、线下;
- “成交日期” 是分析依据;
- “大区” 也是要分析的内容。
SQL实现过程
我们以 “线上销量的月环比” 做SQL实现步骤讲解
先统计每个月的线上销量
select DATE_FORMAT(日期,'%Y-%m') as date, count(*) as 累计销量 from renwu where 类型 = '线上' GROUP BY date
我们需要在每个月累计销量 后面 显示一列上月的销量:
select t.date tdate ,t.累计销量 本月销量 ,y.累计销量 上月销量from(select DATE_FORMAT(日期,'%Y-%m') as date, count(*) as 累计销量 from renwu where 类型 = '线上' GROUP BY date) tleft JOIN(select DATE_FORMAT(DATE_ADD(日期,INTERVAL 1 MONTH),'%Y-%m') as date, count(*) as 累计销量 from renwu where 类型 = '线上' GROUP BY date) yon t.date = y.date
最后就可以通过 “本月销量” 和 “上月销量” 计算环比了;
计算公式为:(本月销量 - 上月销量) / 上月销量 *100%
select t.date tdate ,t.累计销量 本月销量 ,y.累计销量 上月销量,
casewhen y.累计销量 is null or y.累计销量 = 0 then 0.00else round((t.累计销量 - y.累计销量) / y.累计销量, 4)end ratiofrom(select DATE_FORMAT(日期,'%Y-%m') as date, count(*) as 累计销量 from renwu where 类型 = '线上' GROUP BY date) tleft JOIN(select DATE_FORMAT(DATE_ADD(日期,INTERVAL 1 MONTH),'%Y-%m') as date, count(*) as 累计销量 from renwu where 类型 = '线上' GROUP BY date) yon t.date = y.date
计算结果中的 “ratio” 就是计算的环比,这里保留了4位小数,是为了在报表中转化为百分比再保留两位小数。
我们只需要展示最新月份的环比,所以不需要把所有数据都列出来,只需要展示最新月份的一条数据即可,做最后的优化:
以上是环比计算的过程,同比计算只需要将增加的 “上月数据” 改为 “去年数据“ 即可
”DATE_FORMAT(DATE_ADD(日期,INTERVAL 1 MONTH),'%Y-%m')”
改为
”DATE_FORMAT(DATE_ADD(日期,INTERVAL 1 YEAR),'%Y-%m')”
展示同比环比
在 DataEase 的仪表板编辑界面,将SQL 的计算数据放到一个指标卡中显示即可,显示类型选择为 百分比显示,效果如下:
最终数据展示看板
以上看板展示工具为:DataEase
使用 SQL 实现同比环比分析相关推荐
- 7.6 PowerBI系列之DAX函数专题-周的同比环比与周聚合
需求 实现如下图的周同比环比分析 实现 日期表 = -- 创建一个日期表 addcolumns(addcolumns(calendar auto(),"年度",year(date) ...
- 天纵智能软件快速开发同比环比统计分析插件
定义 数据同比环比分析插件用所选月份数据和去年同期及上期进行同比和环比分析. 本插件使用方法也很简单,通过设置对个对比字段即可完成整个分析逻辑.结果列表样式.模块界面样式.查询参数等所有功能. 可自定 ...
- Echarts 表格通过ajax异步请求实现动态赋值(分析同比环比的实现)
Echarts 表格通过ajax异步请求实现动态赋值(分析同比环比的实现) 对于ElementUI中使用ECharts在上一篇文章中已经说明具体使用方法 一.效果图:(以每一个月的工业产值为例) 我们 ...
- 同比、定比和环比分析
财务分析指标中,存货周转率衡量企业营运能力的重要指标之一,通常,我们按照下述方法是用该指标: 在企业财务分析中,有一个重要的分析方法,就是趋势分析法.即将两期或连续数期财务报告中某一指标进行对比,确定 ...
- Tableau同环比分析系列(一)--基础同比、环比
同环比分析是我们在数据分析中不可避免的分析方法,各业务数据的同比变化.环比变化是反映业务的重要指标.我们接下来将通过几篇文章介绍如何使用Tableau进行数据同比.环比的分析与处理. 一.同比.环比的 ...
- sql 按照天环比_sql server 获取同比或环比
一.要求 1.表结构如下: ID DepartName(部门) Sales(销售量) SalesDate(销售日期) 1 营销一部 300 2006- ...
- sql 按照天环比_SQL 查询同比,环比
一.要求 1.表结构如下: ID DepartName(部门) Sales(销售量) SalesDate(销售日期) 1 营销一部 300 2006-7-1 2 营销二部 500 2006-7-1 3 ...
- 使用商业智能分析系统进行同比、定比、环比分析
财务分析指标中,存货周转率衡量企业营运能力的重要指标之一,通常,我们按照下述方法是用该指标: 在企业财务分析中,有一个重要的分析方法,就是趋势分析法.即将两期或连续数期财务报告中某一指标进行对比,确定 ...
- PostgreSQL 时序数据案例 - 时间流逝, 自动压缩, 同比\环比
标签 PostgreSQL , 时序数据 , rrd , rrdtool , round robin database , 自动压缩 , CTE , dml returning , 环比 , 同比 , ...
最新文章
- 阿里大佬告诉我,想学习设计模式,得先学好这些硬核技能
- 多因子降维法(MDR,Multifactor Dimensionality Reduction )
- shell判断输入变量或者参数是否为空
- js和jquery书籍
- NLP之路-warm up
- 有时候,一个人也挺好
- C++中使用模板,new创建2维动态数组
- 异常已存在具有相同键的条目。_从Viticis Fructus分离的环烯醚萜类化合物抑制紫杉醇诱导的小鼠机械性异常性疼痛...
- html5中的web worker的用法
- 关于php开发中用户请求数据的安全问题的一点想法
- SonarLint 默认扫描规则
- 软件测试入门有哪些书籍可供推荐?
- 浩辰ICAD电气软件IDq2003i.rar
- 【软考:网工】协议篇(非常重要)
- Word 公式编辑器: 公式居中,编号居右,带章节号自动更新,且可以交叉引用
- springboot网上电子书店下载购买系统-图书商城网站961h3-java-ssm二级分类
- Problem E: Pineapple
- openGL结合光照与纹理
- 3.1 Linux 支持的文件系统类型
- tlp导致linux运行缓慢,在deepin 20系统中使用tlp但无法自动降频的处理
热门文章
- 西门子博途_S7-1200通过脉冲方式控制步进电机时,限位开关的高电平、低电平如何选择?
- 使用PS制作简单的抽象光教程
- jass函数和c 语言,新企划 新的编译为Jass的语言
- 合工大计算机专业支持跨考吗,2011年合肥工业大学计算机专业复试流程_跨考网...
- 【已解决】Windows 无法更新/Windows Update服务自动停止/Microsoft Store无法下载应用
- android qq三方登录授权失败,教大家qq第三方登陆授权失败110401怎么办的解决方法...
- 推荐一个超爽的前端工具HBuilder
- python利用pyautocad绘制岩体产状
- 呕心沥血整理,Nginx看这个就够了
- CSDN技能树实践测评:实践是检验真理的唯一标准