1
我想组我的变量以特定方式动态分组
我的数据:蓝色列是标识,红色我的数据布局,绿色是我想要的输出
这组所有在B之前那组下一A之前所有的B,然后组的C
这是针对一个ID一样,我想这样的事情发生的所有ID(信息是动态的,每个ID)在A
我想组我的变量以特定方式动态分组
我的数据:蓝色列是标识,红色我的数据布局,绿色是我想要的输出
这组所有在B之前那组下一A之前所有的B,然后组的C
这是针对一个ID一样,我想这样的事情发生的所有ID(信息是动态的,每个ID)在A
SQL表格代表无序集合。除非列明确指定了排序,否则没有排序。让我假设这样一个列存在。
你想识别组然后把它们放在一起。一个简单的方法是使用lag()
,以确定发生的变化,然后当发生改变时采取的值:
select col
from (select t.*,
lag(col) over (partition by id order by ??) as prev_col
from t
) t
where prev_col is null or prev_col <> col;
的??
是指定排序的列。
在over条款我应该有一个分区的条款在事件中,我有更多的ID –
是的,我只是把ID的顺序由条款它的工作,我检查了约6至7个ID。感谢您向我展示此逻辑 –
@RyanGomes。 。 。这不能保证工作。如果这很重要,那么你需要一个指定排序的列。表代表*无序*集的事实是非常基本的,如果你忽略这个简单的事实,你就会有错误和沮丧。 –