Sql 如何获取连续的id组
我想按组增加一个id,对于只有2个值的属性的每个变体。像这样:Sql 如何获取连续的id组,sql,postgresql,count,window-functions,gaps-and-islands,Sql,Postgresql,Count,Window Functions,Gaps And Islands,我想按组增加一个id,对于只有2个值的属性的每个变体。像这样: 1 banana 2 banana 3 egg 4 egg 5 banana 6 egg 7 egg 需要结果 id food grp 1 banana 1 2 banana 1 3 egg 2 4 egg 2 5 banana 3 6 egg 4 7 egg 4 我尝试使用窗口函数进行密集排列,但
1 banana
2 banana
3 egg
4 egg
5 banana
6 egg
7 egg
需要结果
id food grp
1 banana 1
2 banana 1
3 egg 2
4 egg 2
5 banana 3
6 egg 4
7 egg 4
我尝试使用窗口函数进行密集排列,但在grp列中我只给出了1或2个您可以使用窗口函数来解决这个间隙和孤岛问题。Her是一种使用滞后和窗口计数的方法: 选择id、食物、计数*过滤器食物与id grp过量订购的食物不同之处 从…起 选择t.*,lagfood按id过量订购lag_food 来自MyT表 T 逻辑是将每种食物与前一行的值进行比较,并计算其变化的次数 :
伟大的我从未使用过过滤器:[ id | food | grp -: | :----- | --: 1 | banana | 1 2 | banana | 1 3 | egg | 2 4 | egg | 2 5 | banana | 3 6 | egg | 4 7 | egg | 4