需求

我们将会比对相邻的数据,其中value是递增的,但也会存在清零的情况。我们的需求是计算当天的分钟递增量。

SQL

语句中需要解释一下参数

  • ** ctc_etl.1_1_1907/sum.out_2021 :表名**
  • ** WHERE
    item_timestamp > “2021-12-01 00:00:00”
    AND item_timestamp < “2021-12-02 00:00:00” 是我自己加的筛选条件**
SELECT b.id,( b.item_value - a.item_value ) AS value,b.item_timestamp AS time
FROM(SELECT id,item_value,@num := @num + 1 AS row_number FROM( SELECT @num := 0 ) r,ctc_etl.`1_1_1907/sum.out_2021` WHEREitem_timestamp > "2021-12-01 00:00:00" AND item_timestamp < "2021-12-02 00:00:00" ORDER BYid ) a,(SELECTid,item_value,item_timestamp,@num2 := @num2 + 1 AS row_number FROM( SELECT @num2 := 0 ) r2,ctc_etl.`1_1_1907/sum.out_2021` WHEREitem_timestamp > "2021-12-01 00:00:00" AND item_timestamp < "2021-12-02 00:00:00" ORDER BYid ) b
WHEREa.row_number + 1 = b.row_number;

解析

目前计算的只是每秒的增加量,其次就是存在负数的情况,也就是清零了后一个数比前一个小就造成了负数

最终SQL

SELECTc.id,SUM( c.VALUE ) AS value,DATE_FORMAT( c.time, "%Y-%m-%d %H:%i:00" ) AS time
FROM(SELECTb.id,(b.item_value - a.item_value ) AS value,b.item_timestamp AS time FROM(SELECTid,item_value,@num := @num + 1 AS row_number FROM( SELECT @num := 0 ) r,ctc_etl.`1_1_1907/sum.out_2021` WHEREitem_timestamp > "2021-12-01 00:00:00" AND item_timestamp < "2021-12-02 00:00:00" ORDER BYid ) a,(SELECTid,item_value,item_timestamp,@num2 := @num2 + 1 AS row_number FROM( SELECT @num2 := 0 ) r2,ctc_etl.`1_1_1907/sum.out_2021` WHEREitem_timestamp > "2021-12-01 00:00:00" AND item_timestamp < "2021-12-02 00:00:00" ORDER BY id ) b WHERE a.row_number + 1 = b.row_number ) c WHERE c.VALUE > 0
GROUP BYDATE_FORMAT(c.time,"%Y-%m-%d %H:%i:00")

MySQL同表相邻数据比对查询相关推荐

  1. MYSQL 单表一对多查询,将多条记录合并成一条记录

    MYSQL 单表一对多查询,将多条记录合并成一条记录 一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实 ...

  2. MySQL多表数据记录查询详解

    在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...

  3. mysql 子表_MySQL子查询,派生表和通用表达式

    一:子查询 1.介绍 在另一个查询(外部查询)中嵌套另一个查询语句(内部查询),并使用内部查询的结果值作为外部查询条件. 2.子查询在where中 SELECT customerNumber, che ...

  4. mysql多表左联分组查询

    在做项目的时候需要实现一个多表左联加分组查询的逻辑. 下图是前端要显示的数据: 数据来源于三张表: ETC表:cap_etc 车辆表:cap_vehicle ETC消费表:cap_etc_record ...

  5. mysql 单表多字段查询_单表多字段MySQL模糊查询的实现

    MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...

  6. mysql 内存表 速度_mysql查询速度。为什么用内存表查询tmp表比直接选择慢?

    我有点困惑这种MySQL行为. 一个带有ORDER BY子句的查询将创建tmp表(如show profile所示),并且运行速度更快,即使没有order with with的相同查询也不会创建tmp ...

  7. mysql 多表 结构相同 查询

    MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中.多个 SELECT 语句会删除重复的数据. expression1, expression2, ... ...

  8. MySQL学习-表记录的查询操作

    数据中最常见的操作就是查询操作,也可以称作检索操作,目的是从表中检索出所需要的数据. select 语句: select 字段列表 from 表名或视图名 [where 条件表达式] [group b ...

  9. mysql 多子表联查_MySQL-子查询和多表联查

    1.多表联查 使用多表联查的场景,有些时候数据在不同的表中,这个时候我们就需要用到mysql中的多表联查. 2.多表联查概念 将两个或两个以上的表按某个条件连接起来,从而选取需要的数据.多表联查是同时 ...

最新文章

  1. Git环境搭建及简单的本地、远程 两库关联
  2. 2014-2015 ACM-ICPC, Asia Xian Regional Contest G The Problem to Slow Down You 回文树
  3. 三层路由中限制VLAN间转发,但其他转发正常事例
  4. MindCon极客周 | 第三届全新席卷而来,SIG英雄帖,做硬核玩家,夺万元大奖!
  5. AbstractFactoryPattern(23种设计模式之一)
  6. 实验——Windows常用网络测试命令
  7. linux文件分割(将大的日志文件分割成小的)
  8. MySQL GROUP BY 语句
  9. 面向.Net程序员的dump分析
  10. 推荐阅读-Docker实现原理之Namespace,CGroup
  11. RCE 0day影响数万台QNAP SOHO NAS 设备
  12. Java游戏小李飞镖,安全工程与虚拟技术部双节活动
  13. c语言数组字节偏移,C语言数组中的地址偏移问题
  14. applicationcontext获取bean_如果你每次面试前都要去背一篇Spring中Bean的生命周期,请看完这篇文章...
  15. android游戏菜鸟教程,菜鸟教程app
  16. 转载-计算机网络原理
  17. 电脑qq空间,qq空间电脑版
  18. android 免root 免流,安卓无需Root一键免流软件合集,具体哪个能用自测
  19. 怎么杀php源文件的木马,PHP一句话木马及查杀
  20. 自用工具 猴子都会用的unity视频播放器

热门文章

  1. 解决vscode头文件<bits/stdc++.h>报错问题
  2. 妇科病历汇报PPT模板
  3. 03 - vulhub - Apereo CAS 4.1 反序列化命令执行漏洞
  4. docker安装mysql yml文件_Docker 安装mysql
  5. mysql--数据库剧本指令操作
  6. 机器学习-过拟合、正则化、稀疏性、交叉验证概述
  7. 经典电子书(转)免费下载
  8. 《袁老师访谈录》第二期 | 李世玮教授/香港科大深圳研究院院长:【有你同在,与众不同!】...
  9. 工具系列————Endnote搜索参考文献
  10. 嵌入式大牛详解:嵌入式linux开发流程总结