mysql参数实现lag over函数

前言:最近在遇到把oracle数据迁移到mysql的项目,oracle里面一顿用开窗函数啊,前人是爽了,我迁移数据的可麻烦了,其中就遇到lag over开窗函数,下面就写一下在mysql中怎么用变量实现lag函数(mysql8以上就支持开窗函数了 本文用的是mysql5.7版本)

select
lag(salary,1) over(PARTITION by deptid order by joindate) a,
t.*
from 
emp_shenliang2025 t;

要实现在mysql中上述lag over函数

select
    t.*,
    @lagfield last_salary,
    @lagfiled:=t.salary,
from (
    select
    t.*
    from 
    emp_shenliang2025 t
    order by t.deptid,joindate)t,
(select @lagfield:='');

注:order by t.deptid,joindate 这块是来实现lag() over(PARTITION by deptid order by joindate)中的 "PARTITION by deptid order by joindate" 这部分 这块是重点

@lagfield last_salary 这个是写你要出现的新列的名字

上述就是在mysql5.7中实现lag over函数的过程,欢迎交流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值