Why does aggregate query allow select of non-group by or aggregate values? - Mailing list pgsql-general

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@hylesanderson.edu


pgsql-general by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Is the a "magic number" for WAL files
Next
From: Henry Drexler
Date:
Subject: Re: Why does aggregate query allow select of non-group by or aggregate values?