来个容易理解的:
UPDATE csdn_leibie
SET new=CASE WHEN NOT EXISTS(SELECT * FROM csdn_leibie WHERE a.leibie=leibie AND riqi>a.riqi) THEN 1 ELSE 0 END
FROM csdn_leibie a
WHERE leibie=1
;
with list as(
select leibie,riqi,new,rid=row_number()over(partition by leibie order by riqi desc)
from table
)
update list set new=case when rid=1 then 1 else 0 end