Re: Problem with aliasing

From: "Nigel J(dot) Andrews" <nandrews(at)investsystems(dot)co(dot)uk>
To: Greg Stark <gsstark(at)mit(dot)edu>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Problem with aliasing
Date: 2003-02-21 15:44:10
Message-ID: Pine.LNX.4.21.0302211542550.26119-100000@ponder.fairway2k.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, 21 Feb 2003, Nigel J. Andrews wrote:

> On 21 Feb 2003, Greg Stark wrote:
>
> > Jean-Christian Imbeault <jc(at)mega-bucks(dot)co(dot)jp> writes:
> >
> > > TAL=# select max(req_del_date1, req_del_date2, req_del_date3) as ma1 from
> > > invoices where ma1 <= now();
> > > ERROR: Attribute "ma1" not found
> > >
> > > What is wrong with my syntax?
> >
> > Try either of:
> >
> > SELECT max(req1, req2, req3) AS max FROM invoices WHERE max(req1, req2, req3) <= now()
> > SELECT * from (select max(req1, req2, req3) AS max FROM invoices) WHERE max <= now()
> >
> > Whichever seems clearer to you, I think postgres actually runs the two the
> > same way. Note, you should mark your function immutable so postgres knows it
> > can optimize the second case into the first.
>
> Doesn't:
>
> SELECT max(req1, req2, req3) AS ma1 FROM invoices HAVING ma1 <= now();
>
> work?
>
> Now I'm going to have to go see if I've got that wrong as well...

Obviously I got the wrong end of the stick but any way, I was wrong that column
aliases could be used for group by and having clauses. At least that's what
7.2.3 is telling me.

--
Nigel J. Andrews

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Stephan Szabo 2003-02-21 15:45:20 Re: type casting a subselect as an interval
Previous Message Tom Lane 2003-02-21 15:34:04 Re: type casting a subselect as an interval