pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andreas <maps.on@gmx.net>
To: Jasen Betts <jasen@xnet.co.nz>
Cc: pgsql-sql@postgresql.org
Subject: Re: Need help in grouping records
Date: Sun, 20 May 2012 11:08:25 +0200
Message-ID: <4FB8B489.3050701@gmx.net> (raw)
In-Reply-To: <jp9mvc$qmu$1@reversiblemaps.ath.cx>
References: <4FB7EEC6.1030004@gmx.net>
	<jp9mvc$qmu$1@reversiblemaps.ath.cx>

Am 20.05.2012 05:04, schrieb Jasen Betts:
> On 2012-05-19, Andreas<maps.on@gmx.net>  wrote:
>> Hi,
>>
>> I'm trying to fight against double entries in tables.
>> I got as far as I can find similar records with trigram string matching.
>> If I do this with a table compared to itself I get something like this:
>>
>> id_a, id_b
>> 3,   5
>> 3,   7
>> 5,   3
>> 5,   7
>> 7,   3
>> 7,   5
>> 11,   13
>> 13,   11
>>
>> so the records with the IDs 3, 5, 7 and 11, 13 are similar enough to
>> form a group.
>>
>> How would I get a list of record-IDs with a group-ID like this
>>
>> record_id, group_id
>> 3,   1
>> 5,   1
>> 7,   1
>> 11,   2
>> 13,   2
>>
>> Is there a way to get this by SQL ?
>
>    select id_a,min(least(id_a,id_b)) from SOMETHING group by id_a
>
> close enough?
>
> or this: ?
>
>    select id_a, rank() over order by g  from
>    ( select id_a,min(least(id_a,id_b)) as g from SOMETHING group by id_a ) as foo
>
>
>
Thanks   :)
Thats by far more elegant as my approach with arrays I figured out in 
the meantime.

I changed rank() to dense_rank() in your solution.

Functionally the 1st line does allready all the magic, though.

Great   :)




view thread (3+ messages)

Message-ID: <4FB8B489.3050701@gmx.net>
Permalink:  ../4FB8B489.3050701@gmx.net/
Also on:    postgresql.org/message-id/4FB8B489.3050701@gmx.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: maps.on@gmx.net, jasen@xnet.co.nz
  Subject: Re: Need help in grouping records
  In-Reply-To: <4FB8B489.3050701@gmx.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox