On Fri, Dec 9, 2011 at 5:48 PM, Jack Christensen <jackc@xxxxxxxxxxxxxxxxx> wrote:
CREATE TABLE people(
id serial PRIMARY KEY,
name varchar NOT NULL
);
INSERT INTO people(name) VALUES('Adam'), ('Adam'), ('Adam'), ('Bill'), ('Sam'), ('Joe'), ('Joe');
SELECT name, count(*), random()
FROM people
GROUP BY name;
I would expect this query to cause an error because of random(). I ran into this using an array produced by a subquery as a column in the select of an aggregate query, but I was able to boil it down to this contrived example. Shouldn't any _expression_ that is not in the group by or an aggregate function be rejected?
What am I not understanding?
Thanks.
--
Jack Christensen
jackc@xxxxxxxxxxxxxxxxx
I don't know the answer, but I would guess that as random() is not known before hand , it has no reason being in the grouped by.