根据楼下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))