Telling how many records are joined

From: Andrew Perrin <andrew_perrin(at)unc(dot)edu>
To: pgsql-sql(at)postgresql(dot)org
Subject: Telling how many records are joined
Date: 2002-01-04 16:29:37
Message-ID: Pine.LNX.4.21L1.0201041123310.749-100000@nujoma.perrins
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Greetings-

I'm sure there's a (moderately) simple answer to this, but I'd love some
help with it.

I have a database with four tables:

papers - information about newspapers, including a unique paperid
letters - information and text of letters to the editors, including
a unique paperid and the paperid in which it appeared
patterns- word patterns occurring in one or more letters, including
a unique patternid
pattern_occurrences - a linking table containing a letterid, a patternid,
and a count (the number of times the pattern occurs
in the letter).

The patterns and pattern_occurrences tables are quite large (around 3
million records each).

I'd like to know, for example, how many letters from each paper have one
or more patterns already coded. The best I can do is:

SELECT papercode, count(papercode) FROM papers, letters
WHERE papers.paperid=letters.paperid AND
letters.letterid IN (SELECT DISTINCT o_letterid FROM pattern_occurrences)
GROUP BY papercode;

Thanks for any advice.

----------------------------------------------------------------------
Andrew J Perrin - andrew_perrin(at)unc(dot)edu - http://www.unc.edu/~aperrin
Assistant Professor of Sociology, U of North Carolina, Chapel Hill
269 Hamilton Hall, CB#3210, Chapel Hill, NC 27599-3210 USA

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Frank Bax 2002-01-04 17:10:00 simple? join
Previous Message Masaru Sugawara 2002-01-04 15:18:46 Re: left join and where