mysql 实现相邻两条数据相减

本文介绍了一种在MySQL中计算指定列中当前行与前一行数据差值的方法。通过使用变量来保存前一条记录的值,并在查询中计算当前记录与前一条记录之间的差值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   要计算mysql同列当中,当前数据前去上一个数据的差

    查询数据

SELECT 
a.`STORE_ID` AS id,
a.`STORE_NAME` AS NAME,
a.`DEPOSIT` AS curr,
@a.DEPOSIT AS pre,        //上一条记录的deposit值
@a.DEPOSIT:= a.DEPOSIT AS tmp
FROM stock_store_addinfo a,(SELECT @a.DEPOSIT:=0)s

 

  1. @a.DEPOSIT:=a.DEPOSIT AS tmp 将a.DEPOSIT值赋到临时临时变量 @a.DEPOSIT
  2. SELECT @a.DEPOSIT:=0 选择当前表,上一条记录 a.DEPOSIT,默认值为0

     实现差值

   

SELECT 
b.id,
b.NAME,
b.curr,
b.pre,
(b.curr - b.pre) AS diff
FROM
(
SELECT 
a.`STORE_ID` AS id,
a.`STORE_NAME` AS NAME,
a.`DEPOSIT` AS curr,
@a.DEPOSIT AS pre,
@a.DEPOSIT:= a.DEPOSIT
FROM stock_store_addinfo a,(SELECT @a.DEPOSIT:=0)r
)b

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值