使用累积条件max():
max()
select t.*, max(case when amount > 100 then date end) over (partition by accountid order by date) as lastoverhundred from t;