MySQL:选择并计算下一行的值

问题描述 投票:0回答:1

我这里遇到了一点麻烦。 如果我有下表:

ID  | Name | ini_day
-----------------------
1   | Juan | 1
2   | Nora | 5
3   | Pepe | 9
4   | Lara | 12
5   | Alex | 18
6   | Lily | 20  

我需要根据下一个 ini_day 减 1 来计算最后一天的工作。 预期结果:

ID  | Name | ini_day | end_day
------------------------------
1   | Juan | 1       | 4
2   | Nora | 5       | 8
3   | Pepe | 9       | 11
4   | Lara | 12      | 17
5   | Alex | 18      | 19
6   | Lily | 20      | NULL

我如何实现它?预先感谢!

mysql calculated-columns calculated-field
1个回答
0
投票

在 MySQL 8+ 上,我们可以使用

LEAD()
窗口函数:

SELECT ID, Name, ini_day, LEAD(ini_day) OVER (ORDER BY ID) - 1 AS end_day
FROM yourTable
ORDER BY ID;
© www.soinside.com 2019 - 2024. All rights reserved.