MySql如何获取相邻数据
作者:Rude_M 发布时间:2024-01-16 04:36:53
标签:MySql,相邻,数据
如何获取相邻数据
因为项目,所以找到了一些资料并且总结了下关于获取相邻数据的方式。
我只找到了以下的...
/*获取id值与5相减绝对值最近的数据,如果有绝对值相同的,相邻的数据优先输出*/
/*ABS(X)其实就是获取绝对值,然后的话order by 后面的1代表着根据select关键字
后的第一个字段进行排序。limit 后面的数字代表着你想查询数据的行数*/
SELECT ABS(cid-5),cname FROM company ORDER BY 1 LIMIT 3
/*获取指定id的上一条记录,我这里是以id=5为例的*/
select cid,cname from company order by cid>=5,cid desc limit 1
/*获取指定id的下一条记录,我这里是以id=5为例的*/
SELECT cid,cname from company order by cid<=5,cid asc limit 1
记录一下,以免以后遇到又不会
同表相邻数据比对查询
需求
我们将会比对相邻的数据,其中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`
WHERE
item_timestamp > "2021-12-01 00:00:00"
AND item_timestamp < "2021-12-02 00:00:00"
ORDER BY
id
) a,
(
SELECT
id,
item_value,
item_timestamp,
@num2 := @num2 + 1 AS row_number
FROM
( SELECT @num2 := 0 ) r2,
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"
ORDER BY
id
) b
WHERE
a.row_number + 1 = b.row_number;
解析
目前计算的只是每秒的增加量,其次就是存在负数的情况,也就是清零了后一个数比前一个小就造成了负数
最终SQL
SELECT
c.id,
SUM( c.VALUE ) AS value,
DATE_FORMAT( c.time, "%Y-%m-%d %H:%i:00" ) AS time
FROM
(
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`
WHERE
item_timestamp > "2021-12-01 00:00:00"
AND item_timestamp < "2021-12-02 00:00:00"
ORDER BY
id
) a,
(
SELECT
id,
item_value,
item_timestamp,
@num2 := @num2 + 1 AS row_number
FROM
( SELECT @num2 := 0 ) r2,
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" ORDER BY id ) b WHERE a.row_number + 1 = b.row_number ) c WHERE c.VALUE > 0
GROUP BY
DATE_FORMAT(
c.time,
"%Y-%m-%d %H:%i:00")
来源:https://blog.csdn.net/Rude_M/article/details/81133681


猜你喜欢
- 主流的web server 一个巴掌就能数出来,apache,lighttpd,nginx,iisapplication,中文名叫做应用服务
- pip install python-Levenshtein失败pip install xxxx失败的情况很多情况下pip install
- 项目/框架初始化时可能需要保留一些空文件,这时候就需要批量新增gitkeepconst fs = require('fs')
- 我想从列表中取出一部分拿来使用,可以创建切片,指定需要使用的第一个元素和最后一个元素的索引使用例子,说明切片的使用#创建一个数字列表,代表我
- 1、安装flask_sqlalchemy和pymysql包pip install flask-sqlalchemypip install p
- 一、pip异常有一小部分童鞋在打开cmd输入pip后出现下面情况:Did not provide a commandDid not prov
- 这里从八个pandas的数据处理生命周期,整理汇总出pandas框架在整个数据处理过程中都是如何处理数据的。也就是从pandas的数据表对象
- 表操作 例 1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如
- 先给大家介绍下python制作定时发送信息脚本,内容如下所示:文章中提到的菜单是右下角这个需求我们需要做到打开微信获取输入框焦点及输入思路1
- 本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。什么是 PyMySQL?PyMySQL 是在 P
- 5.1.5 表单验证 表单作为 HTML 最重要的一个组成部分,几乎在每个网页上
- 一:购物车管理功能1.添加商品(不重复添加)、2.删除商品(购物车中有的才能删除)、3.查看购物车4.退出系统产品列表products =
- 首先初始化页面$(function(){ $('#archives-table').bootstrapTable
- 首先安装解析的第三方包:go get gopkg.in/yaml.v2示例:package main import ( "os&q
- 背景:准备给长辈买个手机,有关手机大小,网购平台基本只有手机尺寸和分辨率的文本数据,因而对手机屏幕大小没有直观感受,虽然网上有比较手机大小的
- (一)CSV格式文件1.说明CSV是一种以逗号分隔数值的文件类型,在数据库或电子表格中,常见的导入导出文件格式就是CSV格式,CSV格式存储
- 基准函数是测试演化计算算法性能的函数集,由于大部分基准函数集都是C/C++编写,Python编写的基准函数比较少,因此本文实现了13个常用基
- 目前在网上搜到的利用 PyCharm 调试远程服务器程序的教程大多都是针对 PyCharm 2020、2019,甚至更早版本,PyCharm
- 在Python中,有些开源项目中的方法返回结果为self. 对于不熟悉这种用法的读者来说,这无疑使人困扰,本文的目的就是给出这种语法的一个解
- pycharm没找到database问题pycharm的社区版本身是没有database的;只有专业版里面会直接出现右上角的database