Re: Re: Need help with what I think is likely a simple query - for each distinct val, return only one record with the most recent date.

From: Hannes Erven <hannes(at)erven(dot)at>
To: Reid Thompson <jreidthompson(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Re: Need help with what I think is likely a simple query - for each distinct val, return only one record with the most recent date.
Date: 2011-09-13 14:39:58
Message-ID: 4E6F6B3E.9020702@erven.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Reid,

> where any one of these 3
>
> 1 1 2011-01-01
> 1 1 2011-01-01
> 1 3 2011-01-01
>
> or any one of these 2
> 3 1 2011-01-05
> 3 2 2011-01-05
>
> are suitable for val = 1, val = 3 respectively.

Can you please describe in words what you are trying to accomplish? When
I look at your data and expected output, I'd say you want this:

For each distinct value of "val1", return any value of "val2" and
the lowest value of "date".

This is actually quite simple - you could also use max(), avg(), ...
instead of min for val2:

SELECT val1, min(val2), min(date)
FROM data
GROUP BY val1

Best regards

-hannes

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message artdias90 2011-09-13 14:57:44 pg_restore must failure on attempt
Previous Message Merlin Moncure 2011-09-13 14:32:52 Re: 8.4.4 locked after power failure