From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
---|---|
To: | Mark Woodward <pgsql(at)mohawksoft(dot)com> |
Cc: | Shane Ambler <pgsql(at)007Marketing(dot)com>, pgsql-hackers(at)postgresql(dot)org, sfrost(at)snowman(dot)net |
Subject: | Re: Syntax bug? Group by? |
Date: | 2006-10-17 17:55:34 |
Message-ID: | 45351916.3040105@dunslane.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Mark Woodward wrote:
>> Stephen Frost wrote:
>>
>>
>>> select ycis_id, min(tindex), avg(tindex) from y where ycis_id = 15;
>>>
>> But back to the query the issue comes in that the ycis_id value is
>> included with the return values requested (a single row value with
>> aggregate values that isn't grouped) - if ycis_id is not unique you will
>> get x number of returned tuples with ycis_id=15 and the same min() and
>> avg() values for each row.
>> Removing the ycis_id after the select will return the aggregate values
>> you want without the group by.
>>
>
> I still assert that there will always only be one row to this query. This
> is an aggregate query, so all the rows with ycis_id = 15, will be
> aggregated. Since ycis_id is the identifying part of the query, it should
> not need to be grouped.
>
> My question, is it a syntactic technicality that PostgreSQL asks for a
> "group by," or a bug in the parser?
>
>
AFAIK what you want is not per sql spec. What if you had instead written
select ycis_id, min(tindex), avg(tindex) from y where frobnitz(ycis_id) = 15;
? I think you are expecting too much reasoning from the engine.
cheers
andrew
From | Date | Subject | |
---|---|---|---|
Next Message | Markus Schaber | 2006-10-17 18:00:18 | Re: Syntax bug? Group by? |
Previous Message | Nolan Cafferky | 2006-10-17 17:54:58 | Re: Syntax bug? Group by? |