Re: Multiple columns w/single aggregate - Mailing list pgsql-general

From Ian Harding
Subject Re: Multiple columns w/single aggregate
Date
Msg-id 3A6B5D30.FFFA4E4E@pakrat.com
Whole thread Raw
List pgsql-general
"Robert M. Craver II" wrote:

> I cannot successfully execute the sql statement:
>
> SELECT percentage, MAX(start_date) FROM sometable
> WHERE id = 1
>
> I get the error message:
>
>    ERROR: Attribute sometable.percentage must be GROUPed
>    or used in an aggregate function
>
> I know that I have seen examples of selecting multiple columns with a
> single colunn aggregate function.  In fact, the new 'PostgreSQL:
> Introductions and Concepts' book by Bruce Momjian has two on page 53.
> Does anyone know why this doesn't work?
>
> Thanks in advance.

True, but you need to group by the non-aggregate columns.  In your case,
just add

GROUP BY percentage

This will give you a listing of all distinct 'percentage' values, and
the maximum of their 'start_date' values, that have id=1.  It will blow
up if there are any NULL in 'percentage' unlike some inferior products
that simply silently eliminate them for you.

Ian


pgsql-general by date:

Previous
From: Cedar Cox
Date:
Subject: Re: [INTERFACES] pl/pgSQL & transaction
Next
From: Alexander Jerusalem
Date:
Subject: postgresql memory management?