Re: GROUP BY column alias?

From: "Eric B(dot) Ridge" <ebr(at)tcdi(dot)com>
To: Scott Bailey <artacus(at)comcast(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: GROUP BY column alias?
Date: 2010-02-18 21:56:56
Message-ID: 242B5FAC-7C65-4A95-81F8-C990D3C432AB@tcdi.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Feb 18, 2010, at 4:31 PM, Scott Bailey wrote:
> I'm not sure why you would be surprised by that behavior. You are grouping by a timestamp, so any microsecond difference will be a new group.

I get that. ;) Hence the ::date. This is what doesn't make sense:

Expected: select day::date as bar, count(*) from foo group by bar;
Not Expected: select day::date as day, count(*) from foo group by day;

If I alias it to something other than the actual column name, it does what I expect. But if I alias it to the column name, it doesn't.

I would have thought that the precedence rules would resolve the alias first, then the column name, but that doesn't seem to be the case.

> If you want to make that work try:
> SELECT day::date, --no need to alias as same name

The "no need to alias as same name" isn't true in my case because the queries I'm dealing with are machine generated, and that's what the generator does, in all cases.

eric

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alvaro Herrera 2010-02-18 22:22:33 Re: Persistent identifiers for Postgres users
Previous Message Reid Thompson 2010-02-18 21:43:27 Re: SQL select return into PSQL variables.