Re: [SQL] Trouble with massive select statement.

From: Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il>
To: pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] Trouble with massive select statement.
Date: 1999-06-22 15:47:20
Message-ID: l03130306b3956077cea4@[147.233.159.109]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

At 15:08 +0300 on 22/06/1999, Darren Greer wrote:

> See below
>
> > > select distinct username, station
> > > from testmaster t1
> > > where 1 < (
> > > select count(t2.username)
> > > from testmaster t2
> > > where t2.test_date > '05-14-1999'
> > > and t2.station = 'WZZZ'
> > > and t1.username = t2.username
> > > )
> > > ;
> >
> > The above doesn't seem to me to do what you claim you want to do ---
> > it seems to be looking for users who have taken the test *more than
> > once* in the given interval.
> That is correct......my mistake :)
>
> > Assuming that the code is right and the comment wrong ;-), I agree
> Good assumption :)
>
> > SELECT username, station FROM testmaster
> > WHERE test_date > '05-14-1999' and station = 'WZZZ'
> > GROUP BY username, station
> > HAVING count(*) > 1;
> This works wonderfully, thanks. Now comes the other twist. I already have a
> select statement (select first_name, email from listeners l,
>listeners_data ld
> where l.username = ld.username a nd $filter;). The $filter is a bunch of and
> statements that limit the data coming from the table listeners. I need
>to get
> the select statement you told me to work as a filter on the data that this
> select statement grabs. I cant see an easy way to do this without making
>this
> thing incredibly slow having to chech every user. Any thoughts?

Perhaps you should go with your original scheme. Something like this:

SELECT first_name, email
FROM listeners l, listeners_data ld
WHERE l.username = ld.username
AND 1 < (
SELECT count (*)
FROM testmaster t
WHERE t.test_date > '05-14-1999'
AND t.station = 'WZZZ'
AND t.username = l.username
);

Now, assuming there is an index on the username field in testmaster, the
internal select will only look for the proper username in testmaster. I
wouldn't say that this is very heavy for a subquery.

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma

Browse pgsql-sql by date

  From Date Subject
Next Message Luiz Renuncio 1999-06-22 17:50:39 Sharing a user defined type
Previous Message Michael J Davis 1999-06-22 15:29:17 RE: [SQL] ODBC SQL question