MySQL 按連續值分組併計數

弗朗西斯科利沃

我有一張看起來像這樣的桌子

ID
1
2
4
5
6
10
11

所以一堆連續的值,未知數量的缺失字段,然後是其他連續的值。我想要實現的是得到

ID 限制
1 0
2 0
4 1
5 1
6 1
10 2
11 2

通過每次增加限制的數量,我以後可以用它來對其他列求和。可能嗎?謝謝

D-施

如果你的 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

在 DB Fiddle 上查看

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章