Re: can i make this sql query more efficiant?

From: "Tomasz Myrta" <jasiek(at)klaster(dot)net>
To: Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>, pgsql-sql(at)postgresql(dot)org
Subject: Re: can i make this sql query more efficiant?
Date: 2003-04-03 23:02:09
Message-ID: 20030404080209.M3259@klaster.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance pgsql-sql

<cut>
> select
> event,
> (select count(*) from baz a
> where level = 1 and a.event=baz.event) as ones,
> (select count(*) from baz a
> where level = 2 and a.event=baz.event) as twos,
> (select count(*) from baz a
> where level = 3 and a.event=baz.event) as threes
> from
> baz
> group by
> event;
>
> which gives me:
>
> event | ones | twos | threes
> -------+------+------+--------
> x | 1 | 1 | 1
> y | 0 | 1 | 2
> (2 rows)
<cut>
What about this:
select
event,
sum(case when level=1 then 1 else 0 end) as ones,
sum(case when level=2 then 1 else 0 end) as twos,
sum(case when level=3 then 1 else 0 end) as threes
from baz
group by event;

Regards,
Tomasz Myrta

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Josh Berkus 2003-04-03 23:12:45 Re: ext3 filesystem / linux 7.3
Previous Message Bruno Wolff III 2003-04-03 22:20:37 Re: [PERFORM] [HACKERS] OSS database needed for testing

Browse pgsql-sql by date

  From Date Subject
Next Message Manfred Koizar 2003-04-03 23:13:18 Re: can i make this sql query more efficiant?
Previous Message Marc G. Fournier 2003-04-03 23:00:26 Re: simple trigger question ...