Re: Slightly confused error message

From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Markus Schaber <schabi(at)logix-tt(dot)com>, PostgreSQL SQL List <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Slightly confused error message
Date: 2006-04-28 16:36:19
Message-ID: dafdc3e847f55e0a67d11c779bf013ec@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


On Fri, 28 Apr 2006 12:07:04 -0400, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Markus Schaber <schabi(at)logix-tt(dot)com> writes:
>> I just stumbled over a slightly confused error message:
>
>> mydb=# select count(*),coverage_area from myschema.streets except select
>> cd as coverage_area from countryref.disks group by
> streets.coverage_area;
>> ERROR: column "streets.coverage_area" must appear in the GROUP BY
>> clause or be used in an aggregate function
>
>> As the query looks, streets.coverage_area is actually used in the GROUP
> BY.
>
> The complaint is 100% accurate; the subquery that it's unhappy about is
>
> select count(*),coverage_area from myschema.streets
>
> which is an aggregating query, but coverage_area is being used outside
> an aggregate without having been grouped by.

I see lack of parenthesis in the sub-query:

select count(*),coverage_area from myschema.streets except
(select cd as coverage_area from countryref.disks)
group by streets.coverage_area;

--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2006-04-28 19:02:42 Re: Slightly confused error message
Previous Message Markus Schaber 2006-04-28 16:30:08 Re: Slightly confused error message