Oooh, fun :-)
The simplest and most portable way is to do an insert into an identical table that is the output of a group-by from your original table.
Beyond that, well you get into vendor extensions, custom programming etc.
The problem looks simple, but it is non-trivial exactly because SQL is set-oriented. By its nature, there is no set statement that you can make which actually distinguishes two identical things. So you can easily identify delete all duplicated things. But determining which duplicate to get rid of is another story.
In Access this is a very good reason to add an auto-incrementing ID column. Then you are guaranteed to always have some way to distinguish two rows (the ID column).
Cheers,
Ben
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]