From: | Jeff Eckermann <jeff_eckermann(at)yahoo(dot)com> |
---|---|
To: | Gaetano Mendola <mendola(at)bigfoot(dot)com>, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Select the max on a field |
Date: | 2002-09-12 14:03:45 |
Message-ID: | 20020912140346.6056.qmail@web20808.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
--- Gaetano Mendola <mendola(at)bigfoot(dot)com> wrote:
>
> "Gaetano Mendola" <mendola(at)bigfoot(dot)com> wrote in
> message
> news:alq3mr$2s7o$1(at)news(dot)hub(dot)org(dot)(dot)(dot)
> > Hi all,
> >
> > Suppose that I have a table like this:
> >
> >
> > att_1 | att_2 | att_3 | att_4
> > --------------------------------
> > 1 | a | y | y1
> > 2 | b | y | y2
> > 3 | a | xx | y3
> > 4 | c | zz | y4
> > 5 | a | t | y5
> > 6 | c | x | y6
> >
> >
> >
> > I want obtain all row that have for each att_2
> > the max of att_1
>
> I forgot to say: "with a single total query without
> sub select "
>
If you don't mind a non-portable feature, DISTINCT ON
should do what you want. Something like:
SELECT DISTINCT ON (att_2) att_1, att_2, att_3, att_4
FROM table
ORDER BY att_2, att_1 DESC;
__________________________________________________
Do you Yahoo!?
Yahoo! News - Today's headlines
http://news.yahoo.com
From | Date | Subject | |
---|---|---|---|
Next Message | Gaetano Mendola | 2002-09-12 14:31:04 | Performance inside and outside view ( WAS Re: Select the max on a field ) |
Previous Message | Stephan Szabo | 2002-09-12 14:02:06 | Re: Select the max on a field |