我有一个看起来像的表
id |
---|
1 |
2 |
4 |
5 |
6 |
10 |
11 |
如果您的MySQL版本支持窗口功能。
您可以尝试在子查询中使用LAG
窗口函数来获取上一个id
列,然后使用SUM
条件聚合窗口函数。
查询#1
SELECT Id,
SUM(id - n_Id > 1) OVER(ORDER BY id) stint
FROM (
SELECT *,LAG(id,1,id) OVER(ORDER BY id) n_Id
FROM T
) t1
Id | 工作 |
---|---|
1 | 0 |
2 | 0 |
4 | 1 |
5 | 1 |
6 | 1 |
10 | 2 |
11 | 2 |