SQL实现相邻两行数据的加减乘除操作

 更新时间:2020年10月24日 09:01:56   作者:IBoyMan  
这篇文章主要介绍了SQL实现相邻两行数据的加减乘除操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

SQL实现表里数据按一定顺序排序后,按某几个字段分组后相邻两行数据实现加减乘除运算。

思路:

1:先把表数据分组排序后打上序号标签

2:根据需求把标签字段加/减一

上代码:

select distinct a.phone,from_unixtime(cast(floor(a.ts/1000) as bigint),'yyyyMMdd HH:mm:ss'),cha
from table a
join 
(
 select a.phone,a.ts,abs(a.ts-b.ts)/1000 cha
 from (select phone,ts,row_number() over(partition by phone order by ts ) rank from table) a
 left join
 ( select phone,ts,rank-1 as rank from (select phone,ts,row_number() over(partition by phone order by ts ) rank from table) a ) b
 on a.phone = b.phone and a.rank = b.rank
) b
on a.phone = b.phone and a.ts = b.ts
where a.phone is not null and a.phone<>'';

表数据如图:

第一列为phone,第二列为时间ts,要求算出相同phone的每两条相邻数据所花费的时间

结果如图:

第三列的单位是秒

补充知识:SQL实现当前行等于前面两行数据之和

sql实现类似斐波那契数列的功能,即当前数据等于前面两个数据之和,详看本文例子

原表:

sql语句(此处要熟悉JION ON的用法)

结果

以上这篇SQL实现相邻两行数据的加减乘除操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql中sum float类型使用小数点的方法

    mysql中sum float类型使用小数点的方法

    使用sum示和时如果是float类型的数据就会出现小数点了,那么要如何解决这个问题,下面介绍二种方法
    2013-11-11
  • driver-class-name: com.mysql.jdbc.Driver爆红的问题解决

    driver-class-name: com.mysql.jdbc.Driver爆红的问题解决

    在springboot项目工程中想要进行数据库配置,driver-class-name: com.mysql.cj.jdbc.Driver始终报错,本文就来介绍一下如何解决,感兴趣的可以了解一下
    2024-07-07
  • 提高SQL代码可读性的10种技巧

    提高SQL代码可读性的10种技巧

    SQL,这门备受推崇的编程语言,在关系数据库操作中扮演着不可或缺的角色,然而,伴随着数据库模式的不断增长和不断演进,编写和维护SQL代码可能会变得相当具有挑战性,为了确保你的SQL代码能够具备高可读性、易维护性以及出色的性能,以下是十个不容忽视的最佳实践
    2023-10-10
  • mysql优化的重要参数 key_buffer_size table_cache

    mysql优化的重要参数 key_buffer_size table_cache

    MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影响最大呢
    2016-05-05
  • MySql如何查看索引并实现优化

    MySql如何查看索引并实现优化

    这篇文章主要介绍了MySql如何查看索引并实现优化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • 防止mysql重复插入记录的方法

    防止mysql重复插入记录的方法

    这篇文章主要为大家详细介绍了防止mysql重复插入记录的方法,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • SQL替换字符串值的5种常用方法

    SQL替换字符串值的5种常用方法

    这篇文章主要给大家介绍了关于SQL替换字符串值的5种常用方法,常用SQL的朋友应该知道,SQL中一般都会提供一些字符串处理函数,需要的朋友可以参考下
    2023-08-08
  • mysql排序ORDER BY不生效的问题解决

    mysql排序ORDER BY不生效的问题解决

    order by作为一个常用的功能,在项目中应该经常用到,本文主要介绍了mysql排序ORDER BY不生效的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • MYSQL explain 执行计划

    MYSQL explain 执行计划

    explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
    2009-08-08
  • mysql增删改查基础语句

    mysql增删改查基础语句

    这篇文章主要介绍了mysql增删改查基础语句,需要的朋友可以参考下
    2017-10-10

最新评论