X-Original-To: pgsql-sql@postgresql.org Received: from spampd.localdomain (postgresql.org [64.49.215.8]) by postgresql.org (Postfix) with ESMTP id E7EBE47634D for ; Fri, 11 Apr 2003 17:32:03 -0400 (EDT) Received: from nycsmtp4out-eri0.rdc-nyc.rr.com (nycsmtp4out-eri0.rdc-nyc.rr.com [24.29.99.227]) by postgresql.org (Postfix) with ESMTP id B6DD0476345 for ; Fri, 11 Apr 2003 17:31:58 -0400 (EDT) Received: from math-hat.com (66-65-68-41.nyc.rr.com [66.65.68.41]) by nycsmtp4out-eri0.rdc-nyc.rr.com (8.12.1/Road Runner SMTP Server 1.0) with SMTP id h3BLQvYr011975 for ; Fri, 11 Apr 2003 17:26:57 -0400 (EDT) Received: (nullmailer pid 23218 invoked by uid 1000); Fri, 11 Apr 2003 21:32:00 -0000 To: pgsql-sql@postgresql.org Subject: Re: count(*), EXISTS, indexes Mail-Copies-To: never From: Itai Zukerman Date: Fri, 11 Apr 2003 17:32:00 -0400 In-Reply-To: <874r54sr8q.fsf@matt.w80.math-hat.com> (Itai Zukerman's message of "Fri, 11 Apr 2003 16:39:49 -0400") Message-ID: <87smsora9b.fsf@matt.w80.math-hat.com> User-Agent: Gnus/5.090018 (Oort Gnus v0.18) Emacs/21.2 (gnu/linux) References: <874r54sr8q.fsf@matt.w80.math-hat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Status: No, hits=-31.8 required=5.0 tests=BAYES_01,IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES, REPLY_WITH_QUOTES,UPPERCASE_50_75,USER_AGENT_GNUS_UA autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) X-Archive-Number: 200304/186 X-Sequence-Number: 12887 > 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; -- Itai Zukerman