Try this: Delete from my_table t1 where a = 2 and exists (select 'X' from my_table t2 where t2.a = t1.a and t2.b = t1.b and t2.c = t1.b and t2.d = t1.d and t2.timestamp < t1.timestamp)
At 12:55 PM 11/1/01 -0800, you wrote: >Given a business rule that says a combination of three columns must be >unique if and only if a fourth column equals a certain value, and if >the table in question contains rows that violate this requirement, I'm >trying to write a single SQL statement that will remove the duplicates. > Of each set of duplicate rows, I'll delete the one with the latest >insert timestamp. > >Let's call the columns > >a b c d timestamp > >The combination of b, c, and d must be unique if a = 2. > >I can get the duplicate row values along with the latest timestamp via > >select max(tstamp), a, b, c from >my_table group by a, b, c having count(*) > 1 > >But I can't figure out how to use that in a delete statement. > >Suggestions greatly appreciated! > > >Paul Baumgartel > > >__________________________________________________ >Do You Yahoo!? >Make a great connection at Yahoo! Personals. >http://personals.yahoo.com >-- >Please see the official ORACLE-L FAQ: http://www.orafaq.com >-- >Author: Paul Baumgartel > INET: [EMAIL PROTECTED] > >Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 >San Diego, California -- Public Internet access / Mailing Lists >-------------------------------------------------------------------- >To REMOVE yourself from this mailing list, send an E-Mail message >to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in >the message BODY, include a line containing: UNSUB ORACLE-L >(or the name of mailing list you want to be removed from). You may >also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Regina Harter INET: [EMAIL PROTECTED] Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
