Search Postgresql Archives

Re: Group By and wildcards...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tom Lane wrote:
Bruno Wolff III <bruno@xxxxxxxx> writes:

 Jon Lapham <lapham@xxxxxxxxx> wrote:

When using queries with aggregate functions, is there any way to not have to have to explicitly write all the columns names after the GROUP BY ? I would like to use a wildcard "*".


Don't those tables have primary keys? Grouping by the primay key of each
table will produce the same result set as grouping by all of the columns.

Bruno, this is true, but I want all the columns to appear in the output.

Unfortunately, PG will still make him GROUP BY everything he wants to
use as a non-aggregated output column.  This behavior is per SQL92
spec.  SQL99 added some verbiage to the effect that you only need to
GROUP BY columns that the rest are functionally dependent on (this
covers primary keys and some other cases); but we haven't got round
to implementing that extension.

Ugh.

Since I do not want to have to re-write all my aggregate function containing queries upon modifications to the table definitions (and I do not want to write multi-thousand character long SELECT statements), maybe it is easier to use a temp table intermediary?

SELECT a.id AS aid, SUM(d.blah) AS sum_blah
INTO TEMPORARY TABLE foo
FROM a, b, c, d
WHERE <some join conditions linking a,b,c,d>

followed by

SELECT *
FROM a, b, c, foo
WHERE <some join conditions linking a,b,c>
  AND foo.aid=a.id

Ugly... ugly... any other ideas on how to do this? My table definitions LITERALLY have hundreds of columns, and I need access to them all.

--
-**-*-*---*-*---*-*---*-----*-*-----*---*-*---*-----*-----*-*-----*---
 Jon Lapham  <lapham@xxxxxxxxx>                Rio de Janeiro, Brasil
 Personal: http://www.jandr.org/
***-*--*----*-------*------------*--------------------*---------------


---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your message can get through to the mailing list cleanly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux