Re: Subqueries in select clause

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: Subqueries in select clause
Дата
Msg-id Pine.BSF.4.21.0104180712120.81945-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Subqueries in select clause  (Sara Cohen <sarina@cs.huji.ac.il>)
Список pgsql-sql
On Wed, 18 Apr 2001, Sara Cohen wrote:

> The Problem:
> ------------
> 
> I would like to use a subquery that returns one column, but more than one
> tuple. The result of this subquery is then used in an aggregate function.
> 
> For example, suppose I have a table c, with columns a and b of
> numbers. Then I would like to be able to write something of the style:
> 
>     select max((select count(b) from c group by a));
> 
> However, when I try it, I get an error message:
> 
> ERROR:  More than one tuple returned by a subselect used as an expression.

Yeah, technically I think the spec (at least my sql92 draft) guards
against this by saying that the set functions can't take set functions
or subqueries.

> I actually need to use this type of construct in many cases, some of which
> have subqueries using values that appear in the outer query (i.e.,
> correlated subqueries). Thus, it would be difficult for me to simply
> create a temporary table with the value of the inner query and then use it
> to solve the query I need. (Since I need to translate automatically from
> queries with the above type of constructs to something that will run on
> Postgresql.)
> 
> Using Oracle, I could get by this problem with:
> 
>     select max(d) from ((select count(b) as d from c group by a));

Upgrade to 7.1 :)

Actually, technically for postgres it'll be:select max(d) from (select count(b) as d from c group by a) e;
It enforces the requirement of naming the subqueries.

However in 7.0, you *might* be able to do something like:
select count(b) as d from c group by a order by 1 desc limit 1;




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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Subqueries in select clause
Следующее
От: "Richard Huxton"
Дата:
Сообщение: Re: Subqueries in select clause