返回顶部
首页 > 资讯 > 数据库 >MySQL中怎么计算同比和环比
  • 258
分享到

MySQL中怎么计算同比和环比

2023-07-02 12:07:12 258人浏览 薄情痞子
摘要

这篇文章主要介绍“MySQL中怎么计算同比和环比”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mysql中怎么计算同比和环比”文章能帮助大家解决问题。我们先来看看什么是同比,什么是环比:同比:通常是

这篇文章主要介绍“MySQL中怎么计算同比和环比”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mysql中怎么计算同比和环比”文章能帮助大家解决问题。

我们先来看看什么是同比,什么是环比:

同比:通常是指今年第n月与去年第n月相比。同比发展速度主要是为了消除季节变动的影响,用以说明本期发展水平与去年同期发展水平对比而达到的相对发展速度。

环比:通常是指表示连续2个单位周期(比如连续两月)内的量的变化比。环比包括两种:环比增长速度和环比发展速度。

那同比增长率和环比增长率又如何计算呢:

同比增长率:

同 比 增 长 率 = ( 本 期 数 − 同 期 数 ) / 同 期 数 ∗ 100 % 

环比增长率:

环 比 增 长 率 = ( 本 期 数 − 上 期 数 ) / 上 期 数 × 100 % 

同比和环比的区别

  • 同比是本期与同期做对比,环比是本期与上期做对比。

  • 环比一般是用在月、日很少用在年上,主要是对比很短时间内涨幅程度,不过由于行业差异,比如旅游,会受到淡旺季影响。

  • 同比一般用在相邻两年,相同时间段内,查看涨幅程度,一般用在两年相同月份,很少用在两月相同日期。

mysql中如何计算同比和环比

数据准备

创建商品表并向商品表中添加数据

CREATE TABLE product  (  `产品ID` varchar(20) NOT NULL,  `产品名称` varchar(20) ,  `产品单价` int (10))INSERT INTO product VALUES ('C1001','产品A',45);INSERT INTO product VALUES ('C1002','产品B',52);INSERT INTO product VALUES ('C1003','产品C',39);

MySQL中怎么计算同比和环比

创建订单明细表并向订单明细表中添加数据

CREATE TABLE sales  (    `订单ID` int NOT NULL PRIMARY KEY AUTO_INCREMENT,  `产品ID` varchar(25) NOT NULL ,  `销售数量` int(20) ,  `销售时间` timestamp(6) NULL DEFAULT NULL);INSERT INTO sales(`产品ID`,`销售数量`,`销售时间`) VALUES ('C1001', 15, '2020-06-01 10:10:12');INSERT INTO sales(`产品ID`,`销售数量`,`销售时间`)  VALUES ('C1002',26, '2020-05-02 0:10:12');INSERT INTO sales (`产品ID`,`销售数量`,`销售时间`) VALUES ('C1003', 21, '2020-04-03 0:10:12');INSERT INTO sales (`产品ID`,`销售数量`,`销售时间`) VALUES ('C1003', 23, '2020-04-04 0:10:12');INSERT INTO sales (`产品ID`,`销售数量`,`销售时间`) VALUES ('C1003', 0, '2020-03-05 0:10:12');INSERT INTO sales (`产品ID`,`销售数量`,`销售时间`) VALUES ('C1001', 16, '2020-02-06 3:0:12');INSERT INTO sales (`产品ID`,`销售数量`,`销售时间`) VALUES ('C1002', 32, '2020-01-07 0:10:12');INSERT INTO sales (`产品ID`,`销售数量`,`销售时间`) VALUES ('C1001', 16, '2019-12-08 0:12:24');INSERT INTO sales (`产品ID`,`销售数量`,`销售时间`) VALUES ('C1001', 32, '2019-06-09  0:12:24');INSERT INTO sales (`产品ID`,`销售数量`,`销售时间`) VALUES ('C1002', 17, '2019-05-09 0:12:24');

MySQL中怎么计算同比和环比

计算同比和环比

select  year(c.销售时间) yy,month(c.销售时间) mm,            sum(c.销售数量*d.产品单价) ss,concat(ifnull(abs(round((sum(c.销售数量*d.产品单价)-ss1)/ss1*100,2)),0),'%') 同比,concat(ifnull(abs(round((sum(c.销售数量*d.产品单价)-ss2)/ss2*100,2)),0),'%')  环比from sales cleft join product d on c.产品ID=d.产品IDleft join (select month(a.销售时间) mm1,                    year(a.销售时间) yy1,                    sum(a.销售数量*d.产品单价) ss1          from sales a          left join product d on a.产品ID=d.产品ID          GROUP BY mm1,yy1) a          on month(c.销售时间) = a.mm1           and a.yy1 = year(c.销售时间)-1  left join  (select month(a.销售时间) mm2,                    year(a.销售时间) yy2,                    sum(a.销售数量*d.产品单价) ss2             from sales a     left join product d on a.产品ID=d.产品ID              GROUP BY mm2,yy2) bon (b.yy2 = year(c.销售时间) and b.mm2+1 = month(c.销售时间) OR (yy2=year(c.销售时间)-1 AND b.mm2 = 12 AND month(c.销售时间) = 1)) group by yy, mm order by yy,mm asc

sql解析

select  year(c.销售时间) yy,month(c.销售时间) mm,            sum(c.销售数量*d.产品单价) ss, # concat函数,mysql字符串拼接,因为同比和环比都是百分数# ifnull函数,mysql判断字段是否为空,为空则为0# abs函数,mysql取绝对值,因为我这里取的都是正数# round函数,mysql保留几位小数concat(ifnull(abs(round((sum(c.销售数量*d.产品单价)-ss1)/ss1*100,2)),0),'%') 同比,concat(ifnull(abs(round((sum(c.销售数量*d.产品单价)-ss2)/ss2*100,2)),0),'%')  环比from sales cleft join product d on c.产品ID=d.产品ID # 上一年销售额left join (select month(a.销售时间) mm1,                    year(a.销售时间) yy1,                    sum(a.销售数量*d.产品单价) ss1          from sales a          left join product d on a.产品ID=d.产品ID          GROUP BY mm1,yy1) a          # 同比月份相同,年份减1          on month(c.销售时间) = a.mm1             and a.yy1 = year(c.销售时间)-1 # 今年销售额  left join  (select month(a.销售时间) mm2,                    year(a.销售时间) yy2,                    sum(a.销售数量*d.产品单价) ss2             from sales a     left join product d on a.产品ID=d.产品ID              GROUP BY mm2,yy2) b          # 环比取数考虑到为一月的情况on (b.yy2 = year(c.销售时间) and b.mm2+1 = month(c.销售时间) OR (yy2=year(c.销售时间)-1 AND b.mm2 = 12 AND month(c.销售时间) = 1)) group by yy, mm order by yy,mm asc

结果:

MySQL中怎么计算同比和环比

除此之外,还想要计算累计销售的话,可以这样写:

select year(销售时间) yy,month(销售时间) mm,sum(销售数量*b.产品单价) over(order by year(销售时间) ,month(销售时间) ) 累计数量 from sales aleft join product b on a.产品ID=b.产品IDorder by  yy,mm

关于“MySQL中怎么计算同比和环比”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网数据库频道,小编每天都会为大家更新不同的知识点。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中怎么计算同比和环比

本文链接: https://lsjlt.com/news/341751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL中怎么计算同比和环比
    这篇文章主要介绍“MySQL中怎么计算同比和环比”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL中怎么计算同比和环比”文章能帮助大家解决问题。我们先来看看什么是同比,什么是环比:同比:通常是...
    99+
    2023-07-02
  • MySQL中如何计算同比和环比
    目录前言我们先来看看什么是同比,什么是环比:那同比增长率和环比增长率又如何计算呢:同比和环比的区别在mysql中如何计算同比和环比数据准备计算同比和环比sql解析总结前言 今天在做数据建模的时候,ads层的需求中有个叫同...
    99+
    2022-06-22
    mysql计算同比和环比怎么算 mysql 同比环比 mysql 同比
  • pandas如何计算同比环比增长
    目录计算同比环比增长问题描述数据准备计算环比增长计算同比增长同比和环比计算公式计算同比环比增长 问题描述 我有2017.1-2018.12的销售数据,计算每一个月的 同比和环比增长,...
    99+
    2024-04-02
  • 使用pandas计算环比和同比的方法实例
    目录前言1.数据准备2.环比计算3.同比计算4.关于pct_change()函数5.后记前言 在进行业务数据分析时,往往需要使用pandas计算环比、同比及增长率等指标,为了能够更加...
    99+
    2024-04-02
  • Python中怎么计算环比增长率
    Python中怎么计算环比增长率,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 认识环比增长率很多企业比较注重自己的业务增长情况,时常会需要计算同比增...
    99+
    2023-06-16
  • java怎么计算同比增长工具类
    本篇内容主要讲解“java怎么计算同比增长工具类”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么计算同比增长工具类”吧!java 计算同比增长工具类为了数据的严谨性,统一装换为BigD...
    99+
    2023-06-20
  • mysql计算环比的方法(多种情况)
    整理不易,转发请注明出处,请勿直接剽窃! 点赞、关注、不迷路! 摘要: 历史、当前月环比 公式:环比=(本月-上月)/上月 历史月环比(适用于计算历史每个月的环比) select (a...
    99+
    2023-09-30
    mysql 数据库 sql
  • Pandas常用累计、同比、环比等统计方法实践过程
    目录1.(本年)累计2.(上年)同期累计3. 上月(完成)4. 同比(增长率)5. 环比(增长率)6. 总结统计表中常常以本年累计、上年同期(累计)、当期(例如当月)完成、上月完成为...
    99+
    2024-04-02
  • CSS百分比padding怎么计算
    本篇内容主要讲解“CSS百分比padding怎么计算”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS百分比padding怎么计算”吧!一、CSS百分比pad...
    99+
    2024-04-02
  • java 如何计算同比增长工具类
    java 计算同比增长工具类 为了数据的严谨性,统一装换为BigDecimal,话不多说,看代码。 package com.pig4cloud.pigx.admin.api.ut...
    99+
    2024-04-02
  • MySQL计算百分比方法介绍
    根据相应条件抽出相应count数(myCount)抽出总count数(totalCount)计算百分比:myCount / totalCount * 100四舍五入:使用ROUND函数ROUND(numbe...
    99+
    2024-04-02
  • 中文文本长度计算的异同:lenb函数和len函数的比较
    lenb函数和len函数对于中文文本长度计算的异同点,需要具体代码示例 【引言】在使用编程语言处理中文文本时,我们经常要计算文本的长度。在Python中,常用的计算文本长度的函数有len和lenb。这两个函数在处理中文文本时有一...
    99+
    2024-01-29
  • mysql中常用日期比较与计算函数有哪些
    这篇文章给大家分享的是有关mysql中常用日期比较与计算函数有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySql中时间比较的实现unix_...
    99+
    2024-04-02
  • 比较和选择MySQL不同类型的锁
    MySQL 是一种常用的关系型数据库管理系统,广泛应用于各种类型的应用程序中。在多用户并发访问数据库的情况下,为了保证数据的一致性和完整性,我们经常需要使用锁来控制并发访问的操作。MySQL 提供了多种类型的锁,包括表级锁和行级锁。不同类型...
    99+
    2023-12-21
    查询优化 事务处理 并发控制
  • Java和Python中for循环的比较
    Java是强类型的语言,而python是弱类型的语言。先看Java中的for循环使用,如下图: package test06; public class Fortest { public static void main(Str...
    99+
    2023-01-31
    Java Python
  • CSS中怎么同比例缩小图片
    本篇文章给大家分享的是有关CSS中怎么同比例缩小图片,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。符合Web标准!CSS同比例缩小图片当然,生...
    99+
    2024-04-02
  • Vue3和Vue2比对有什么不同
    这篇文章主要介绍“Vue3和Vue2比对有什么不同”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue3和Vue2比对有什么不同”文章能帮助大家解决问题。 性能 ...
    99+
    2024-04-02
  • c++矩阵计算性能对比:Eigen和GPU解读
    目录生成随机矩阵计算矩阵点积使用显式循环计算使用Eigen库使用GPU结果分析总结生成随机矩阵 生成随机矩阵有多种方式,直接了当的方式是使用显式循环的方式为矩阵的每个元素赋随机值。 ...
    99+
    2022-12-15
    c++矩阵 c++矩阵计算性能对比 c++ Eigen c++ GPU
  • php中怎么比较字符串的异同
    php中怎么比较字符串的异同,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。<phpecho strnatcmp("2Hello&nbs...
    99+
    2023-06-20
  • 基于统计的预警:同环比预警实现深度剖析
    一、UAV预警功能简介UAV.Monitor提供了对全维监控指标的预警功能,各类型的监控指标均可配置预警策略,当预警策略被触发后,可通过邮件、HTTP调用等方式进行通知报警,并会根据预警时间频率等对报警动作进行压制。预警分为流式预警、统计预...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作