RE: Re[2]: [SQL] Query to eliminate duplicates

From: Mario Filipe <mjnf(at)uevora(dot)pt>
To: Sferacarta Software <sferac(at)bo(dot)nettuno(dot)it>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: RE: Re[2]: [SQL] Query to eliminate duplicates
Date: 1998-12-03 15:07:50
Message-ID: XFMail.981203150750.mjnf@uevora.pt
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


On 03-Dec-98 Sferacarta Software wrote:
> Hello Mario,
>
> giovedì, 3 dicembre 98, you wrote:
>
>
> MF> On 02-Dec-98 Sferacarta Software wrote:
>>> MF> Is there a way to eliminate duplicate records using just SQL?
>>>
>>> SELECT DISTINCT ...
>
> MF> I deserved that!
>
> MF> The problem is that i have a table where there are duplicate
> records
> MF> and i want to delete them! I tryed creating a unique index but it told me
> it
> MF> couldn't because it didn't have a function to do something (I think it is
> MF> because i had a boolean field in it)
>
>
> select * from TABELA where COLUNA in (
> select COLUNA from TABELA group by COLUNA having 1 < count(COLUNA)
> );
>
This would work (i believe you) but in my case i'm looking into a table
where there are at least 3 columns to look at!

It's a table where I keep the information about wich are the
disciplines where a student is enrolled:

Ex:

numero_aluno|codigo_disciplina|ano_lectivo|epoca|semestre
------------+-----------------+-----------+-----+--------
10335| 1207|1998/1999 | 1|f
10335| 1208|1998/1999 | 1|f
10335| 1209|1998/1999 | 1|f
10335| 1203|1998/1999 | 1|f
10335| 1205|1998/1999 | 1|f
10335| 1212|1998/1999 | 1|f
10335| 1213|1998/1999 | 1|f
10335| 1215|1998/1999 | 1|f

In this case there are no duplicates but in this one there are:

numero_aluno|codigo_disciplina|ano_lectivo|epoca|semestre
------------+-----------------+-----------+-----+--------
13427| 35|1998/1999 | 1|t
13427| 904|1998/1999 | 1|f
13427| 122|1998/1999 | 1|t
13427| 907|1998/1999 | 1|f
13427| 481|1998/1999 | 1|f
13427| 286|1998/1999 | 1|t
13427| 368|1998/1999 | 1|t
13427| 35|1998/1999 | 1|t
13427| 904|1998/1999 | 1|f
13427| 122|1998/1999 | 1|t

So a duplicate is actually a record that looks exactly like other record on the
table...

Thanks for your help anyway

Mario Filipe
mjnf(at)uevora(dot)pt
http://neptuno.sc.uevora.pt/~mjnf

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Javier E Polo 1998-12-03 19:08:49 revoke!!!
Previous Message Sferacarta Software 1998-12-03 14:47:01 Re[2]: [SQL] Query to eliminate duplicates