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实现相邻两行数据的加减乘除操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
driver-class-name: com.mysql.jdbc.Driver爆红的问题解决
在springboot项目工程中想要进行数据库配置,driver-class-name: com.mysql.cj.jdbc.Driver始终报错,本文就来介绍一下如何解决,感兴趣的可以了解一下2024-07-07mysql优化的重要参数 key_buffer_size table_cache
MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影响最大呢2016-05-05
最新评论