这是您想要的吗?
select t.*
from t
where t.reject_date = '1900-01-01' or
t.reject_date = (select max(t2.reject_date)
from t t2
where t2.id = t.id
);
对于每个ID,这将保留reject_date
为1900-01-01或拒绝日期为该ID的最大拒绝日期的行。
编辑:
这可能更合适:
select t.*
from t
where t.reject_date = (select t2.reject_date
from t t2
where t2.id = t.id
order by (case when t2.reject_date = '1900-01-01' then 1 else 2 end),t2.reject_date desc
);
,
您似乎不需要row_number()
select id,OrderDate,RejectDate,max(case when RejectDate = '1900-01-01' then '9999-12-31' else RejectDate end) as rSum
from tableA
group by id,RejectDate
本文链接:https://www.f2er.com/3169410.html