如果表中a,b两列数据,如果连续出现3条或以上相同的a和相同的b时,删除其中间的所有记录 如果不是连续就不操作,如何实现

例如attachments-2022-07-n3H8pRfz62c7e02e5ac5e.png

请先 登录 后评论

2 个回答

Draco Chen

根据楼下wale的建议,答案修改为

select * from t where (x -> x == 1 or (next deltas x) < 0)(segmentby(x -> 1..size(x), a, a)) and (x -> x ==1 or (next deltas x) < 0)(segmentby(x -> 1..size(x), b, b))

select * from t where each(def(x,y): x==1 or x==y, segmentby(x -> 1..size(x), a, a), segmentby(size, a, a)) and each(def(x,y): x==1 or x==y, segmentby(x -> 1..size(x), b, b), segmentby(size, b, b))


请先 登录 后评论
wale
上面方法只考虑了b相同,没有考虑a相同
请先 登录 后评论