渡辺です。 考えてみたら、もう少し整理できました。 delete from x where not (memberid, assigntime) in (select memberid,max(assigntime) from x group by memberid); 一つのmemberidに対し、まったく同じassigntimeが複数ある場合は これではダメですが、そのケースは考えられないので、これでいいようです。 すっきりしました。 ありがとうございました。