pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tarlika Elisabeth Schmitz <postgresql6@numerixtechnology.de>
To: pgsql-sql@postgresql.org
Subject: GROUP and ORDER BY
Date: Mon, 7 Nov 2011 21:20:31 +0000
Message-ID: <20111107212031.4d6310aa@dick.coachhouse> (raw)

Hello,

I would like to GROUP the result by one column and ORDER it by another:

SELECT 
    no, name, similarity(name, 'Tooneyvara') AS s    
    FROM vtown
    WHERE    similarity(name, 'Tooneyvara') > 0.4
    ORDER BY s DESC

Result:

1787	"Toomyvara"	0.5
1787	"Toomevara"	0.4
1188	"Toonybara"	0.4


Desired result:

1787	"Toomyvara"	0.5
1188	"Toonybara"	0.4

Gets rid of the  duplicate "no" keeping the spelling with the greater
similarity and presents the remaining result ordered by similarity.


My solution:

SELECT * FROM 
(
SELECT DISTINCT ON (no)
    no, name, 
    similarity(name, 'Tooneyvara') AS sim
    FROM vtown
    WHERE similarity(name, 'Tooneyvara') > 0.4
    ORDER BY no, sim DESC
) AS x
ORDER BY sim


Is that the best way to achieve this result?
-- 

Best Regards,
Tarlika Elisabeth Schmitz



view thread (4+ messages)  latest in thread

Message-ID: <20111107212031.4d6310aa@dick.coachhouse>
Permalink:  ../20111107212031.4d6310aa@dick.coachhouse/
Also on:    postgresql.org/message-id/20111107212031.4d6310aa@dick.coachhouse

 · 

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: postgresql6@numerixtechnology.de
  Subject: Re: GROUP and ORDER BY
  In-Reply-To: <20111107212031.4d6310aa@dick.coachhouse>

* 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