Thread: count() for a select statement?

count() for a select statement?

From
Jean-Christian Imbeault
Date:
Is there an efficient way to get a count of the number of rows returned
by this kind of query?

select id from products where name ILIKE 'TNT' UNION select id from
products where name ILIKE 'ATOM' UNION select id from products where
name ILIKE 'BOB'

I don't need any of the data returned, just a row count. The way I do it
now is to execute the query and use (in PHP) pg_numrows() on the result
set. But that mean the whole result set is being sent back to me when
all I need is a count ...

I've tried select count( select id from ...) but that didn't work ;)

Jc


Re: count() for a select statement?

From
Stephan Szabo
Date:
On Wed, 2 Oct 2002, Jean-Christian Imbeault wrote:

> Is there an efficient way to get a count of the number of rows returned
> by this kind of query?
>
> select id from products where name ILIKE 'TNT' UNION select id from
> products where name ILIKE 'ATOM' UNION select id from products where
> name ILIKE 'BOB'

Probably "select count(*) from (select id from ... ) as t"
should work.


Re: count() for a select statement?

From
snpe
Date:
On Tuesday 01 October 2002 07:46 pm, Jean-Christian Imbeault wrote:
> Is there an efficient way to get a count of the number of rows returned
> by this kind of query?
>
> select id from products where name ILIKE 'TNT' UNION select id from
> products where name ILIKE 'ATOM' UNION select id from products where
> name ILIKE 'BOB'
>
> I don't need any of the data returned, just a row count. The way I do it
> now is to execute the query and use (in PHP) pg_numrows() on the result
> set. But that mean the whole result set is being sent back to me when
> all I need is a count ...
>
> I've tried select count( select id from ...) but that didn't work ;)
>

You try :
select count(*)
from (select id from ...)

regards
haris peco