Re: count(*), EXISTS, indexes - Mailing list pgsql-sql

From Stephan Szabo
Subject Re: count(*), EXISTS, indexes
Date
Msg-id 20030411150926.C838-100000@megazone23.bigpanda.com
Whole thread Raw
In response to Re: count(*), EXISTS, indexes  (Itai Zukerman <zukerman@math-hat.com>)
Responses Re: count(*), EXISTS, indexes  (Itai Zukerman <zukerman@math-hat.com>)
List pgsql-sql
On Fri, 11 Apr 2003, Itai Zukerman wrote:

> >   CREATE TABLE A (x int PRIMARY KEY, real v);
> >   CREATE TABLE B (x int);
> >
> > I'd like to calculate:
> >
> >   SELECT sum(v) FROM A WHERE EXISTS (SELECT 1 FROM B WHERE A.x=B.x);
>
> This seems to be a reasonably-performing workaround:
>
>   SELECT DISTINCT x INTO TEMP C FROM A,B WHERE A.x=B.x;
>   SELECT sum(v) FROM A,C WHERE A.x=C.x;

Hmm, given that, would something like:

select sum(v) from(select distinct on(x) x,v from a,b where a.x=b.x) as foo;

work?



pgsql-sql by date:

Previous
From: Itai Zukerman
Date:
Subject: SELECT INTO TEMP in Trigger?
Next
From: Tom Lane
Date:
Subject: Re: count(*), EXISTS, indexes