Boszormenyi Zoltan <zb@cybertec.at> writes:
> INSERT INTO product.t_product_inv
> SELECT word, array_accum_1(price, id) FROM product.t_product_inv0
> GROUP BY word ORDER BY word, price NULLS FIRST, id;
> However, I get an error:
> ERROR: column "t_product_inv0.price" must appear in the GROUP BY clause
> or be used in an aggregate function
> LINE 3: GROUP BY word ORDER BY word, price NULLS FIRST, id;
> ^
> The condition in the error message is true, the field "price"
> is indeed used in an aggregate function but ignored on purpose
> in the sfunc. So I obviously didn't expect the error to happen.
It is not complaining about the use in the aggregate. It is complaining
about the un-aggregated use in ORDER BY. Notice the error pointer.
regards, tom lane