You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询为同ID记录新增to_dt列(取后续行from_dt)

解决方案:为记录添加结束日期(to_dt)

假设你的表名为employee_company,可以使用窗口函数LEAD实现需求,这是当前最优的写法,无需自连接,性能更优:

SELECT 
    id,
    company_id,
    from_dt,
    LEAD(from_dt) OVER (PARTITION BY id ORDER BY from_dt) AS to_dt
FROM employee_company;

代码说明:

  • PARTITION BY id:按员工id分组,确保只在同一个员工的记录间计算结束日期
  • ORDER BY from_dt:组内按入职日期from_dt升序排序,保证下一条记录是该员工的下一段任职开始日期
  • LEAD(from_dt):获取当前记录的下一条记录的from_dt值,若当前是组内最后一条记录,则返回NULL

执行结果:

idcompany_idfrom_dtto_dt
111345200601NULL
112345200603200703
112379200703NULL
113338200808200912
113309200912201009
113391201009NULL
114318200910NULL

内容的提问来源于stack exchange,提问作者Pop23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:40:25