mysql计算增长率
好久没更新了,最近实在是太忙了,基本上天天和sql打交道。恰巧今天遇到了一个问题,在这里和大家分享一下,就是使用sql计算增长率的问题。
我数据库中的原始数据是这样的:
year | value |
2016 | 100 |
2017 | 200 |
2018 | 140 |
2019 | 300 |
2020 | 150 |
2021 | 180 |
但是我们前端需要展现的是一条折现,显示的是增长率,或者叫同比增长, 这个大家应该都知道吧,公式如下: (后一年数据 - 前一年数据) / 前一年的数据。 这个一开始确实难住了我,后来在网上找到了解决方案,理解过后感觉甚是经典,也分享给大家。
我们还是先来研究下公式, 我们假设今年的数据是 t1. 去年的数据是t2, 那么增长率为 (t1 - t2)/ t2 , 通过分解等价于 t1/t2 -1 ,这应该比较好理解吧。那么我们既然要用sql去实现他,当务之急,即使如何在我们的sql中获取今年和去年的数据,如果能够获得,我们我们就可以直接套用上面的公式即可。
我们怎么获取相邻两个年份的数据呢,其实我们我们可以用两张相同相同的表想关联,只不过让他们的关联条件不是我们常用的相等,而是进行错位关联。 说的比较抽象,我们直接看sql, 假设表名test ,年份字段year,值字段名value. sql如下:
select * from test t1 left join test t2 on t1.year = t2.year+1
我们通过一个left join关联相同的表,要注意条件是 t1.year = t2.year+1 , 这就是我们所说的错位关联。当t1.year=2018年是, t2.year就是2017年,这样t1和t2就代表了两个相邻年份的数据,有了两个相邻年份,我们就可以计算增长率了。
select t1.year, t1.value/t2.value-1 rate from
test t1 left join test t2 on t1.year = t2.year +1
order by t1.year
这就是计算增长率的方式。怎么样,你学会了么。
(csdn不知道怎么了,没法传图片了,等到恢复的时候,再给大家截图吧。。。)
好了,如果对你有帮助,就给点个赞吧!
mysql计算增长率相关推荐
- mysql 计算排名,生成排行榜
mysql计算排名,获取行号rowno 学生成绩表数据 SELECT * FROM table_score ORDER BY score DESC; 获取某个学生成绩排名并计算该学生和上一名学生成绩差 ...
- mysql计算1000天后的日期_mysql,数据库_mysql 计算某个时间,多少天后,多少个月后时间戳,mysql,数据库,数据库设计 - phpStudy...
mysql 计算某个时间,多少天后,多少个月后时间戳 id start_time period_ytpe period_value 1 1461427200 day 3 2 1461427200 mo ...
- mysql 计算gps坐标距离_mysql、sqlserver和php计算GPS经纬度坐标距离
摘要:mysql.sqlserver.oracle和php计算GPS经纬度坐标距离 mysql计算GPS经纬度距离DELIMITER $$ CREATEDEFINER=`root`@`localhos ...
- mysql计算相邻的差值_MySQL如何计算相邻两行某列差值
MySQL计算相邻两行某列差值的方法:首先通过[r1.rownum = r2.rownum - 1]来判断两条记录是否是前后行:然后再使用TIMEDIFF函数来计算时间差即可. [相关学习推荐:mys ...
- 使用MySql计算两个日期的时间差函数:TIMESTAMPDIFF
MySql计算两个日期的时间差函数TIMESTAMPDIFF用法 TIMESTAMPDIFF计算两个日期差值,可定义时间单位 DATEDIFF 计算两个日期差,以天为单位 TIMDIFF 时间比较,直 ...
- mysql 计算自然周
mysql 计算自然周距离现在多少周的方法 set @install = '2020-10-24 18:00:00'; select @install, date_format(@install - ...
- MySql计算两个日期的时间差函数
MySql计算两个日期时间的差函数: 第一种:TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND.SECOND. MINUTE. HOUR. DAY. ...
- 【内附独家PPT】CynosDB for MySQL 计算存储分离架构的实现和优化
3月16日,由腾讯云云+社区主办的腾讯云自研数据库 CynosDB 交流会在北京圆满落幕,本次交流会全方位解读了CynosDB,揭秘技术内幕,解读兼容两大主流开源数据库的一主多读架构.高可用架构及快速 ...
- mysql计算两个月份之间的差值_MySQL计算两个日期相差的天数、月数、年数
MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...
- mysql计算时间差函数 和 四舍五入 2021-10-20
mysql计算时间差函数 和 四舍五入 mysql计算时间差函数 四舍五入 mysql计算时间差函数 提示:以下是本篇文章正文内容,下面案例可供参考 mysql数据中计算时间差函数 MySql计算两个 ...
最新文章
- 数字图像处理- 3.4 空间滤波 and 3.5 平滑空间滤波器
- Hey!你的 CSDN 年度报告已出炉,请查收~
- 计算机连接外设的端口驱动,将 KMDF 外设驱动程序连接到串行端口
- JS Range 对象的使用
- JS 处理Json 时间带T 时间格式
- 多文档版的的正则表达式工具
- 《史无前例!编程语言python斩获最有发展第一与排行榜第三!》深入 Python 流程控制
- linux下部署node+vue文件
- 管理感悟:看清软件功能的“二八定律”
- 小程序场景二维码扫码
- java中dao_java中的Dao类是什么意思?
- oracle报1653解决办法,ORA-1653的问题
- 新浪微博单点登陆分析
- AI 隐身术,能让物体在视频中消失的魔法
- 我爱大自然教案计算机,我们热爱大自然教案.doc
- git学习——上传项目代码到github
- OCA/OCP Oracle 数据库12c考试指南读书笔记:第27章: Duplicating a Database
- Java 8 stream学习
- 计算机修复无法启动怎么还原,电脑无法开机时如何恢复系统?
- 电力电子技术简答题总结
热门文章
- ecu故障现象_发动机各传感器故障现象总结
- 计算机毕业设计Spark+SpringBoot旅游推荐系统 旅游大数据分析大屏 旅游可视化 旅游路线规划系统 旅游推荐App小程序 旅游网站 自驾游路线规划系统 自驾游推荐系统 自驾游推荐App小程序
- 阿里云服务器怎么配置安全组?
- 图像处理:理想低通滤波器、butterworth滤波器(巴特沃斯)、高斯滤波器实现(python)
- 西电2019计算机等级考试,西安电子科技大学2019《计算方法》期末考试试题
- Ubuntu安装过程之磁盘分区图文教程
- 如何在Windows命令行窗口复制和粘贴?
- 面试官问你“有什么问题问我吗?”,你该如何回答? 1
- 图形化硬件编程 ——数码管时钟——之米思齐篇
- 安科瑞【节能学院】电气火灾监控系统在太焦铁路博爱站房项目的应用