Re: GROUP BY or alternative means to group

From: Bruno Wolff III <bruno(at)wolff(dot)to>
To: Michael Gould <mgould(at)isstrucksoftware(dot)net>
Cc: Alexander Reichstadt <lxr(at)mac(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: GROUP BY or alternative means to group
Date: 2012-04-09 17:22:26
Message-ID: 20120409172226.GA32587@wolff.to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Mar 12, 2012 at 16:18:05 -0400,
Michael Gould <mgould(at)isstrucksoftware(dot)net> wrote:
>You need to include all columns that are not aggregrative columns in the group by. Even though that is the standard it is a pain to list all columns even if you don't need them

In later versions of postgres this is relaxed a bit. If you are grouping
by a primary key, you don't need to group by columns that are fixed
by that key. For example the following query is accepted in 9.1 as gameid
is a key for games and hence we don't need to also group by ga,es.title.

SELECT games.gameid, games.title
FROM games, crate
WHERE
games.gameid = crate.gameid
AND
games.contact = 'BOB'
AND
crate.touched >= current_timestamp + '4 year ago'
GROUP BY games.gameid
HAVING count(1) < 30
ORDER BY games.gameid
;

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Francois Lacoursiere 2012-04-09 17:25:35 My main/base/pgsql_tmp directory has over 5.7 millions files
Previous Message Lux 2012-04-09 16:47:21 Help needed to mount a dmp file