Re: two queryes in a single tablescan

From: 李彦 Ian Li <liyan82(at)gmail(dot)com>
To: Stefano Dal Pra <s(dot)dalpra(at)gmail(dot)com>
Cc: PostgreSQL Performance <pgsql-performance(at)postgresql(dot)org>
Subject: Re: two queryes in a single tablescan
Date: 2007-10-18 02:24:50
Message-ID: 4716C3F2.5040206@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance pgsql-sql

I remember when I was using SQL server we did like like that:

SELECT count(CASE WHEN A THEN 1 END) AS cnt_a, count(CASE WHEN B
THEN 1 END) AS cnt_b FROM tab WHERE C;

I did a little test with pg_bench data, also works in PostgreSQL:

test=# select count(*) from history where tid = 1;
count
-------
574
(1 行)

时间: 9.553 ms
test=# select count(*) from history where tid = 2;
count
-------
1107
(1 行)

时间: 8.949 ms
test=# select count(CASE WHEN tid = 1 then 1 END) as t1_cont,
count(case when tid=2 then 1 end) as t2_cnt from history ;
t1_cont | t2_cnt
---------+--------
574 | 1107
(1 行)

时间: 17.182 ms

Hope that helps.

Regards

Stefano Dal Pra wrote:
> Hi everybody,
>
> suppose you have a large table tab and two (or more) queryes like this:
>
> SELECT count(*),A FROM tab WHERE C GROUP BY A;
> SELECT count(*),B FROM tab WHERE C GROUP BY B;
>
> is there any way to get both results in a single query,
> eventually through stored procedure?
> The retrieved [count(*),A] ; [count(*),B)] data couldnt fit
> on a single table, of course.
>
> The main goal would be to get multiple results while scanning the
> table[s] once only
> thus getting results in a faster way.
>
> This seems to me quite a common situation but i have no clue whether a neat
> solution can be implemented through stored procedure.
>
> Any hint?
>
> Thank you
>
> Stefano

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Stéphane Schildknecht 2007-10-18 06:17:27 Re: Vacuum goes worse
Previous Message Ow Mun Heng 2007-10-18 01:33:46 Re: Shared Buffer setting in postgresql.conf

Browse pgsql-sql by date

  From Date Subject
Next Message chester c young 2007-10-20 02:11:29 backup database tablespace with rsync?
Previous Message Boergesson, Cheryl 2007-10-17 18:49:37