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。 。 。這不能保證工作。如果這很重要,那麼你需要一個指定排序的列。表代表*無序*集的事實是非常基本的,如果你忽略這個簡單的事實,你就會有錯誤和沮喪。 –