Distinct on a non-sort column - Mailing list pgsql-general

From Cstdenis
Subject Distinct on a non-sort column
Date
Msg-id 4EB582EC.7060606@on-track.ca
Whole thread Raw
Responses Re: Distinct on a non-sort column  (Tair Sabirgaliev <tair.sabirgaliev@bee.kz>)
Re: Distinct on a non-sort column  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Distinct on a non-sort column  (John R Pierce <pierce@hogranch.com>)
List pgsql-general
I am trying to write a query that selects recent submissions (sorted by submission_date) but only selects the most recent one for each user_id.

example query: select distinct on (user_id) * from stories order by date_submitted desc limit 10;

However postgres will not allow me to filter out duplicate rows with distinct unless I sort on that column, which would product useless results for me. Group by seems to have similiar problems, plus the additional problem of wanting aggregate functions to be used.

I even tried sorting in a subquery, but it still comes out sorted by user_id: select distinct on (user_id) * from stories where sid in (select sid from stories order by date_submitted desc limit 10);


How can I work around this limitation to get the results sorted the way I want, then have the duplicates removed? I can't be the only one running into this limitation, there must be some workaround.

pgsql-general by date:

Previous
From: Cin123
Date:
Subject: Linker error VS2008 c++
Next
From: Scott Marlowe
Date:
Subject: Re: What is *wrong* with this query???