Re: delete 2 of the 3 triplicates from a table

From: Riyaj Shamsudeen <riyaj.shamsudeen_at_gmail.com>
Date: Fri, 7 Feb 2014 08:46:35 -0800
Message-ID: <CAA2DszyHMgtKUObinHXU55HNcNYr2JWzHVFVKx7QQNAEpj5pFQ_at_mail.gmail.com>



Use analytic function (syntax errors expected)

delete from t1
 where rowid IN ( select rowid1

                         from (select rowid rowid1, row_number() over
(partition by id order by rowid) rown
                                 from t1 )
                   where rown != 1
                    );



Cheers

Riyaj Shamsudeen
Principal DBA,
Ora!nternals - http://www.orainternals.com - Specialists in Performance, RAC and EBS
Blog: http://orainternals.wordpress.com/ Oracle ACE Director and OakTable member <http://www.oaktable.com/>

Co-author of the books: Expert Oracle
Practices<http://tinyurl.com/book-expert-oracle-practices/> , Pro Oracle SQL, <http://tinyurl.com/ahpvms8> <http://tinyurl.com/ahpvms8>Expert
RAC Practices 12c. <http://tinyurl.com/expert-rac-12c> Expert PL/SQL practices <http://tinyurl.com/book-expert-plsql-practices>

<http://tinyurl.com/book-expert-plsql-practices>

On Fri, Feb 7, 2014 at 8:31 AM, Lyall Barbour <lyallbarbour_at_sanfranmail.com>wrote:

> Hi,
>
> I need to delete 2 of the 3 triplicates i found in a table. Anyone have
> an easy way to do that?
>
>
>
> Oracle 10.2.0.2 table has two columns, the ID that has triplicates in it
> and a date column (sysdate of when info went into table)
>
>
>
> I found the triplicates with
>
>
>
> select <id column> from <table>
>
> group by <id column>
>
> having (count(<id column) > 1); -- then sub sequently, > 2 (> 3
> returned no rows)
>
>
>
> Thanks
>
> Lyall Barbour
>

--
http://www.freelists.org/webpage/oracle-l
Received on Fri Feb 07 2014 - 17:46:35 CET

Original text of this message