时间:2020-10-24来源:www.pcxitongcheng.com作者:电脑系统城
SQL实现表里数据按一定顺序排序后,按某几个字段分组后相邻两行数据实现加减乘除运算。
思路:
1:先把表数据分组排序后打上序号标签
2:根据需求把标签字段加/减一
上代码:
?1 2 3 4 5 6 7 8 9 10 11 12 |
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实现相邻两行数据的加减乘除操作就是小编分享给大家的全部内容了,
2023-10-30
windows上的mysql服务突然消失提示10061 Unkonwn error问题及解决方案2023-10-30
MySQL非常重要的日志bin log详解2023-10-30
详解MySQL事务日志redo log一、单表查询 1、排序 2、聚合函数 3、分组 4、limit 二、SQL约束 1、主键约束 2、非空约束 3、唯一约束 4、外键约束 5、默认值 三、多表查询 1、内连接 1)隐式内连接: 2)显式内连接: 2、外连接 1)左外连接 2)右外连接 四...
2023-10-30
Mysql删除表重复数据 表里存在唯一主键 没有主键时删除重复数据 Mysql删除表中重复数据并保留一条 准备一张表 用的是mysql8 大家自行更改 创建表并添加四条相同的数据...
2023-10-30