self-join and DISTINCT quandry. - Mailing list pgsql-sql

From Stuart Rison
Subject self-join and DISTINCT quandry.
Date
Msg-id Pine.LNX.4.10.9909292106040.30104-100000@bsmlx17
Whole thread Raw
Responses Re: [SQL] self-join and DISTINCT quandry.
List pgsql-sql
Dear all,

Consider the following table:

test=> select * from hum;
number|letter|family
------+------+------    1|a     |one    2|b     |one    3|c     |one    4|d     |one    5|e     |one    6|f     |one
7|a    |two    8|b     |two    9|c     |two   10|g     |two   11|h     |two   12|i     |two
 
(12 rows)

If I want to know what letters appear in more than one family and what
the number for number for such letters is, I could do:

test=> select t1.letter, t1.number, t2.number from hum t1, hum t2 where
t1.letter=t2.letter and t1.family<>t2.family;
letter|number|number
------+------+------
a     |     1|     7
b     |     2|     8
c     |     3|     9
a     |     7|     1
b     |     8|     2
c     |     9|     3
(6 rows)

test=>

But what is I didn't want the information to appear twice.  I could try
adding DISTINCT but that would not work because row a,1,7 is of course
DISTINCT from a,7,1 although I am looking for such duplication to be
eliminated...

I'd like to do this without using DISTINCT ON if at all possible (because
I disapprove on DISTINCT ON on moral grounds ;) ).

regards,

S.

Stuart C. G. Rison
Department of Biochemistry and Molecular Biology
6th floor, Darwin Building, University College London (UCL)
Gower Street, London, WC1E 6BT, United Kingdom
Tel. 0207 504 2303, Fax. 0207 380 7033
e-mail: rison@biochem.ucl.ac.uk



pgsql-sql by date:

Previous
From: "Ismail Kizir"
Date:
Subject: PL/PgSql documentation and examples
Next
From: "Ismail Kizir"
Date:
Subject: