Re: why can a named subselect not be used in a where condition?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: why can a named subselect not be used in a where condition?
Дата
Msg-id 16339.1011896662@sss.pgh.pa.us
обсуждение исходный текст
Ответ на why can a named subselect not be used in a where condition?  (Markus Bertheau <twanger@bluetwanger.de>)
Список pgsql-sql
Markus Bertheau <twanger@bluetwanger.de> writes:
> cenes_test=3D> select personen.*, (select max(last_visit) from sessions
> where sessions.personen_id =3D personen.personen_id) as max from personen
> where max between 1009148400 and 1011913200 order by max desc;
> ERROR:  Attribute 'max' not found

> Well, why can't I use max in the where clause?

Because max is computed by the select's output list, which logically is
a stage of processing after WHERE.  Perhaps you need to buy an SQL
textbook.

> cenes=> select personen.*, (select max(last_visit) from sessions where
> sessions.personen_id = personen.personen_id) from personen where (select
> max(zeitstempel) from sessions where sessions.personen_id =
> personen.personen_id) between 1009148400 and 1011913200;
> ERROR:  ExecEvalExpr: unknown expression type 501

> That is a query we have tried on 7.0.2 because of curiosity. But the
> error message looks weird. What does it mean?

This is an internal error.  I couldn't reproduce the error using 7.0.2
and straightforward table definitions.  I suspect you've not told us
something important, like that one of these things is a view with a
nontrivial definition.  In any case, 7.0.2 is a long ways back and I'm
not very concerned about figuring out exactly why it fails.  If you can
reproduce the problem on a current release (7.1.3 or 7.2beta) I'd be
interested...
        regards, tom lane


В списке pgsql-sql по дате отправления:

Предыдущее
От: "Josh Berkus"
Дата:
Сообщение: Re: why can a named subselect not be used in a where
Следующее
От: Marius Andreiana
Дата:
Сообщение: Keeping information changes history