MySQL 计算环比(同比类似)
目的:
计算上海市某企业(WATER_METER_ID = 592)在2018.1.1到2018.11.5每个月的用水量,上个月的用水量以及月环比。
1.查看库表
SELECT
*
FROM
data_deal_day
WHERE
WATER_METER_ID = 592
备注:DATA_DATE:水表数据上传日期;READ_SUM:水表读数;USE_SUM:用水量;WATER_METER_ID:用户ID
2.计算环比:
思路:表a首先统计出当月的总用水量,表b统计出上个月的用水量(在a的基础上加一个月,可得到上个月的用水量),将两个表进行左连接。
表a: 表b:
SELECT t.*,
CASE WHEN
t.use_sum_last IS NULL OR t.use_sum_last =0 THEN 0.00
ELSE
FORMAT(((t.use_sum_this - t.use_sum_last)/t.use_sum_last)*100,2) #格式化,保留两位有效数字
END link_ratio
FROM
(
SELECT
a.my_ym ,
FORMAT( a.use_sum ,2) AS use_sum_this,
FORMAT(b.use_sum ,2) AS use_sum_last
FROM
(
SELECT
date_format(data_date,'%Y-%m') AS my_ym , #将日期格式转化为“年-月”
sum(use_sum) AS use_sum
FROM
data_deal_day
WHERE
WATER_METER_ID = 592
AND
data_date>= '2018-1-1'
AND
data_date <= '2018-11-5'
GROUP BY
my_ym
) a
LEFT JOIN
(
SELECT
date_format(DATE_ADD(data_date,INTERVAL 1 MONTH ), '%Y-%m') AS my_ym,#DATE_ADD:将data_date日期增加一个月;减少用DATE_SUB
sum(use_sum) AS use_sum
FROM
data_deal_day
WHERE
WATER_METER_ID = 592
AND
data_date>= '2018-1-1'
AND
data_date <= '2018-11-5'
GROUP BY
my_ym
) b
ON
a.my_ym = b.my_ym
) t #嵌套子查询,必须要有别名
MySQL 计算环比(同比类似)相关推荐
- mysql计算环比的方法(多种情况)
整理不易,转发请注明出处,请勿直接剽窃! 点赞.关注.不迷路! 摘要: 历史.当前月环比 公式:环比=(本月-上月)/上月 历史月环比(适用于计算历史每个月的环比) select (a.amount- ...
- python pandas 计算环比、同比 pct_change -- 自定义函数
加载库 import random import pandas as pd import numpy as np 随机生成数据集(DataFrame格式) DataRanges = pd.date_r ...
- EasyExcel第三弹 + hutool-poi 配合使用导出较复杂Excel.xlsx + 计算增长率、同比环比、比重等
一.回顾 继上次"动态表头easyExcel导入导出(https://blog.csdn.net/qq_37337660/article/details/114680512)", ...
- oracle计算数据环比sql,用分析函数计算环比、同比oracle
1.普及一下概念 环比 = 2018年10月/2018年09月(同一时期内不同时间段的比较) 同比 = 2018年10月/2017年10月(不同时期内相同时间段的比较) 环比增长率 = (2018年 ...
- 使用MySql计算两个日期的时间差函数:TIMESTAMPDIFF
MySql计算两个日期的时间差函数TIMESTAMPDIFF用法 TIMESTAMPDIFF计算两个日期差值,可定义时间单位 DATEDIFF 计算两个日期差,以天为单位 TIMDIFF 时间比较,直 ...
- 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 ...
最新文章
- 干货 | 谈谈我是如何入门这场 AI 大赛的
- 10.31NOIP模拟赛解题报告
- nginx下面server配置
- Css 选择器 算法 规则
- token要加编码decode吗_彻底弄明白Base64 编码
- 解决el-select后台一次返回大数据量渲染慢导致页面卡顿的问题
- 数据开放平台的配置管理
- java线程和操作系统线程_操作系统中的线程
- 内置函数enumerate()使用
- Python urllib – Python 3 urllib
- cdn对动态网站有作用吗_cdn是什么和作用有些
- day 11 Python课上练习解释与基础知识练习题试题一
- 如何使用Tomcat
- 【5G架构】5G 协议栈结构以及与OSI七层协议之间的关系
- UE4-如何做一个简单的TPS角色(一)-创建一个基础角色
- windows10桌面鼠标右键出现卡顿解决方法
- 打印机显示扫描到当前计算机不可用,打印时显示当前打印机不可用
- vue组件加载完成之后执行方法_vue-cli监听组件加载完成的方法
- python出租车数据_1-出租车数据的基础处理,由gps生成OD(pandas).ipynb
- php正则 字符串转数组,jquery字符串转数组split正则匹配