有1张表有3个字段,记录是的个人习惯,如起床后进行A、B、C、D这4个动作,则成为个人习惯1001,另外一个人起床后是进行A、C、D、B这4个动作,那是个人习惯1002,还有1个人起床后进行的是A、B、C、D这4个动作,那么该个人习惯1003应该与1001进行合并,去掉1003的记录或者1001的记录,请教这样该如何写SQL解决?
如第1块和第3块的个人行为的顺序完全一致,那么认定为是一个习惯,就去重,去掉第1块或第3块的记录。
第2,4块的个人行为顺序与其它的都不一样,可以继续保留。记录去重
如第1块和第3块的个人行为的顺序完全一致,那么认定为是一个习惯,就去重,去掉第1块或第3块的记录。
第2,4块的个人行为顺序与其它的都不一样,可以继续保留。记录去重
select
distinct id,listagg(name,',') within GROUP (order by seq) over (partition by id)
from test01
where id in
(
select id from
(
select t.*,row_number() over (partition by count1 order by id desc) rn
from
(
select id,wm_concat(name) count1 from test group by id
) t
) t1
where t1.rn>1
);