• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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分组后随机获取每组一条数据的操作
    • 在SQL中对同一个字段不同值,进行数据统计操作
    • 在sql中对两列数据进行运算作为新的列操作
    • MySQL基于group_concat()函数合并多行数据
    • MySQL删除数据,表文件大小依然没变的原因
    上一篇:mysql判断表是否存在然后批量删除的操作
    下一篇:MySQL数据中很多换行符和回车符的解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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