"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