目的:

计算上海市某企业(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 计算环比(同比类似)相关推荐

  1. mysql计算环比的方法(多种情况)

    整理不易,转发请注明出处,请勿直接剽窃! 点赞.关注.不迷路! 摘要: 历史.当前月环比 公式:环比=(本月-上月)/上月 历史月环比(适用于计算历史每个月的环比) select (a.amount- ...

  2. python pandas 计算环比、同比 pct_change -- 自定义函数

    加载库 import random import pandas as pd import numpy as np 随机生成数据集(DataFrame格式) DataRanges = pd.date_r ...

  3. EasyExcel第三弹 + hutool-poi 配合使用导出较复杂Excel.xlsx + 计算增长率、同比环比、比重等

    一.回顾 继上次"动态表头easyExcel导入导出(https://blog.csdn.net/qq_37337660/article/details/114680512)", ...

  4. oracle计算数据环比sql,用分析函数计算环比、同比oracle

    1.普及一下概念 环比 = 2018年10月/2018年09月(同一时期内不同时间段的比较) 同比 = 2018年10月/2017年10月(不同时期内相同时间段的比较) 环比增长率 =  (2018年 ...

  5. 使用MySql计算两个日期的时间差函数:TIMESTAMPDIFF

    MySql计算两个日期的时间差函数TIMESTAMPDIFF用法 TIMESTAMPDIFF计算两个日期差值,可定义时间单位 DATEDIFF 计算两个日期差,以天为单位 TIMDIFF 时间比较,直 ...

  6. mysql 计算排名,生成排行榜

    mysql计算排名,获取行号rowno 学生成绩表数据 SELECT * FROM table_score ORDER BY score DESC; 获取某个学生成绩排名并计算该学生和上一名学生成绩差 ...

  7. mysql计算1000天后的日期_mysql,数据库_mysql 计算某个时间,多少天后,多少个月后时间戳,mysql,数据库,数据库设计 - phpStudy...

    mysql 计算某个时间,多少天后,多少个月后时间戳 id start_time period_ytpe period_value 1 1461427200 day 3 2 1461427200 mo ...

  8. mysql 计算gps坐标距离_mysql、sqlserver和php计算GPS经纬度坐标距离

    摘要:mysql.sqlserver.oracle和php计算GPS经纬度坐标距离 mysql计算GPS经纬度距离DELIMITER $$ CREATEDEFINER=`root`@`localhos ...

  9. mysql计算相邻的差值_MySQL如何计算相邻两行某列差值

    MySQL计算相邻两行某列差值的方法:首先通过[r1.rownum = r2.rownum - 1]来判断两条记录是否是前后行:然后再使用TIMEDIFF函数来计算时间差即可. [相关学习推荐:mys ...

最新文章

  1. 干货 | 谈谈我是如何入门这场 AI 大赛的
  2. 10.31NOIP模拟赛解题报告
  3. nginx下面server配置
  4. Css 选择器 算法 规则
  5. token要加编码decode吗_彻底弄明白Base64 编码
  6. 解决el-select后台一次返回大数据量渲染慢导致页面卡顿的问题
  7. 数据开放平台的配置管理
  8. java线程和操作系统线程_操作系统中的线程
  9. 内置函数enumerate()使用
  10. Python urllib – Python 3 urllib
  11. cdn对动态网站有作用吗_cdn是什么和作用有些
  12. day 11 Python课上练习解释与基础知识练习题试题一
  13. 如何使用Tomcat
  14. 【5G架构】5G 协议栈结构以及与OSI七层协议之间的关系
  15. UE4-如何做一个简单的TPS角色(一)-创建一个基础角色
  16. windows10桌面鼠标右键出现卡顿解决方法
  17. 打印机显示扫描到当前计算机不可用,打印时显示当前打印机不可用
  18. vue组件加载完成之后执行方法_vue-cli监听组件加载完成的方法
  19. python出租车数据_1-出租车数据的基础处理,由gps生成OD(pandas).ipynb
  20. php正则 字符串转数组,jquery字符串转数组split正则匹配

热门文章

  1. ansible启用sudo执行命令
  2. LintCode 5: Kth Largest Element
  3. 程序如何实现可扩展性
  4. 21个必知的机器学习开源工具,涵盖5大领域
  5. 新能源系统仿真测试解决方案
  6. 部门新来的00后测试员已把我卷崩溃,老油条表示真干不过,但是...
  7. 浪潮配置ipim_NF5280M3 – IPMI设置
  8. 第一台计算机采取了哪位科学家的意见,计算机一级ms office考试上机题
  9. 数据库SQL优化大总结
  10. [导入]n73手机拼音输入法