我有一張看起來像這樣的桌子
ID |
---|
1 |
2 |
4 |
5 |
6 |
10 |
11 |
所以一堆連續的值,未知數量的缺失字段,然後是其他連續的值。我想要實現的是得到
ID | 限制 |
---|---|
1 | 0 |
2 | 0 |
4 | 1 |
5 | 1 |
6 | 1 |
10 | 2 |
11 | 2 |
通過每次增加限制的數量,我以後可以用它來對其他列求和。可能嗎?謝謝
如果你的 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 |
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句