On Wed, Aug 11, 2010 at 8:09 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
> On tis, 2010-08-10 at 22:21 -0430, Jose Ildefonso Camargo Tolosa wrote:
>> And it works, it gives me something like:
>>
>> product_id | name | code | manufacturer_id |
>> manufacturer_name | num_serials
>> ------------+----------------------+---------------+-----------------+----------------------------+-------------
>> 17 | THE product | 1235711131719 | 19 |
>> THE product's manufacturer | 5
>> 6 | Car Battery 500A 12V | 7591512021575 | 8 |
>> Acumuladores Duncan, C.A. | 11
>> 1 | Test product 1 | 123456789012 | 1 |
>> Test Manufacturer | 6
>>
>> Which is correct, and exactly what I wanted.
>>
>> So far, so good. The thing is: the group by clause, I had to add it
>> because the parser forced me to, because it complained like this:
>>
>> ERROR: column "manufacturer.name" must appear in the GROUP BY clause
>> or be used in an aggregate function
>>
>> and I had to include *all* the requested columns on the group by
>> clause, can anybody tell me why? or at least point to some doc that
>> help me understanding this?
>
> This is fixed in PostgreSQL 9.1devel (*); there you only need to put the
> primary key into the GROUP BY clause. Earlier versions didn't know that
> that was enough to ensure a deterministic result.
>
> (*) -- It will probably be a bit over a year before that is released.
Ok, I see, so, in the meantime, just add all columns: no big deal, I
was only curious on why.
Thanks for your answer!
Ildefonso.