you could do this, but i would have concerns over the indexing strategy.
select name from person, (select distinct sid, count(*) bid_count from bids group by sid HAVING count(*) = (SELECT COUNT(BOAT_ID FROM BOATS)) bids where person.sid = bids.sid; Now yours bids table is an intersect table and would have the most records of all three tables. I would create an extra field that never gets update and just put a default value in it. Then I would put a bitmap index on it. since they aer VERY faster on counts. my problem is with the group by. SID could be huge. That could lead to a massive slow down and alot of LIOs.... dont think there is a faster a solution though. No correlated sub-queries which are LIO intensive. > > From: "Mercadante, Thomas F" <[EMAIL PROTECTED]> > Date: 2003/09/29 Mon AM 09:34:38 EDT > To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> > Subject: RE: interesting sql question > > Ralph, > > Assuming that there is no history in the BIDS table (meaning that there are > no "old" records indicating a bid recorded last year), I think the following > would work just fine. > > > select name > from person, > (select distinct sid, count(*) bid_count > from bids > group by sid) bids > where person.sid = bids.sid > and bid_count = 3 > > > Tom Mercadante > Oracle Certified Professional > > > -----Original Message----- > Sent: Monday, September 29, 2003 9:20 AM > To: Multiple recipients of list ORACLE-L > > > Im taking a database theory class(no I dont need help with my homework). > There is an interesting query in the book that I have never seen posed > before. The solution would be hideously slow if there was even a moderate > amount of data in the tables. How would you write it? > > Given 3 tables: and columns in the tables: > > TABLE: Person > Primary Key: SID > COLUMN: NAME > > TABLE: BIDS > Primary Key: BID > Foreign Key: SID > FOREIGN KEYT: BOAT_ID > Column: Date > > Boat: > Primary Key: BOAT_ID > Column: Color > > Find any person who has reserved all the boats. The > > I dont have the solution with me, but there is a 'NOT EXISTS', then in the > subquery there is a minus and a correlated 'where' clause.'. That query > wouldnt move. > > How would you solve this? > > Also, according to the 'SQL Standard', SQL is supposed to support op codes > such as 'ALL' or 'ANY' So you can say: > > Find all people who are older than any person with blue eyes. Or find all > the people who are older than 'ALL' the people with blue eyes. > > Just to reiterate. Not looking for help with my homework. My professor isnt > an Oracle guy so he doesnt know. > > -- > Please see the official ORACLE-L FAQ: http://www.orafaq.net > -- > Author: <[EMAIL PROTECTED] > INET: [EMAIL PROTECTED] > > Fat City Network Services -- 858-538-5051 http://www.fatcity.com > San Diego, California -- Mailing list and web hosting services > --------------------------------------------------------------------- > To REMOVE yourself from this mailing list, send an E-Mail message > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > the message BODY, include a line containing: UNSUB ORACLE-L > (or the name of mailing list you want to be removed from). You may > also send the HELP command for other information (like subscribing). > -- > Please see the official ORACLE-L FAQ: http://www.orafaq.net > -- > Author: Mercadante, Thomas F > INET: [EMAIL PROTECTED] > > Fat City Network Services -- 858-538-5051 http://www.fatcity.com > San Diego, California -- Mailing list and web hosting services > --------------------------------------------------------------------- > To REMOVE yourself from this mailing list, send an E-Mail message > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > the message BODY, include a line containing: UNSUB ORACLE-L > (or the name of mailing list you want to be removed from). You may > also send the HELP command for other information (like subscribing). > -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: <[EMAIL PROTECTED] INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).