All pastes #983226 Raw Edit

Something

public sql v1 · immutable
·published 2008-04-13 04:30 UTC
rendered paste body
-- Relevant tables are:--    * ACTOR (id, fname, lname, gender)--    * MOVIE (id, name, year, rank)--    * DIRECTORS (id, fname, lname)--    * CAST (pid, mid, role)--    * MOVIE_DIRECTORS (did, mid)---- question is which movies have more females in the cast than malesSELECT  DISTINCT Movie.id, nameFROM    Actor, Cast, MovieWHERE   Movie.id = mid AND		(SELECT COUNT(*)		 FROM Actor         WHERE gender = 'F'           AND ACTOR.id = pid) >        (SELECT COUNT(*)		 FROM Actor         WHERE gender = 'M'           AND Actor.id = pid)-- Forget this one...SELECT	DISTINCT m.id, m.name, 		(SELECT COUNT(*)		 FROM Actor a		 WHERE m.id = c.mid		   AND c.pid = a.id		   AND a.gender = 'F') as fcount,		(SELECT COUNT(*)		 FROM Actor a		 WHERE m.id = c.mid		   AND c.pid = a.id		   AND a.gender = 'M') as mcountFROM Movie m, Cast cHAVING fcount > mcount -- Leads to error message: Invalid column name fcount, mcount--- Earlier efforts below....SELECT	DISTINCT m.id, m.name FROM	Actor as a, Cast as c, Movie as mWHERE	(SELECT COUNT(*)	 WHERE a.gender = 'F'	   AND m.id = c.mid	   AND a.id = c.pid) >	(SELECT COUNT(*)	 WHERE a.gender = 'M'	   AND m.id = c.mid	   AND a.id = c.pid)-- Aaaaand take two:SELECT	DISTINCT Movie.id, Movie.name, 		COUNT(fm.aid) as females,		COUNT(mm.aid) as malesFROM	Movie, 		(SELECT a.id as aid, m.id as mid		 FROM Movie as m, Cast as c, Actor as a		 WHERE m.id = c.mid		   AND c.pid = a.id		   AND a.gender = 'F') as fm,		(SELECT a.id as aid, m.id as mid		 FROM Movie as m, Cast as c, Actor as a		 WHERE m.id = c.mid		   AND c.pid = a.id		   AND a.gender = 'M') as mm,WHERE Movie.id = fm.mid OR Movie.id = mm.midHAVING COUNT(fm.aid) > COUNT(mm.aid)