select * from table_name where (id,state) in(
select id,decode(count(state),1,1,3) vi_count from table_name group by id)
你没说出如果ID=B但是没有状态为1或者是ID=A但是状态没有为3的情况吧
select id,decode(count(state),1,1,3) vi_count from table_name group by id)
你没说出如果ID=B但是没有状态为1或者是ID=A但是状态没有为3的情况吧
select id,status from
(select t.*,row_number() over(partition by id order by status desc) rn from t where id in(1,3))
where rn = 1
select ID , max(记录状态) from Table_name group by ID