Я хочу выяснить, какие актеры чаще всего играют в комедийных фильмах.
Большинство их фильмографии должны быть комедийными.
Так, когда у актера есть 7 фильмов, и 4 из них - комедия.
(А также все актеры, которые только играли комедии.)
Стол "Актер":
|id_actor| name |
|--------|------|
| 12 |franco|
| 13 |rogen |
| 14 |hill |
| 15 |teller|
| 16 |john |
Таблица "жанр"
|id_genre| name |
|--------|------------|
| 22 |comedy |
| 23 |thriller |
| 24 |documentary |
Таблица «plays_in»:
|id_actor| id_film |
|--------|------------|
| 12 | 5001 |
| 12 | 5002 |
| 12 | 5003 |
| 13 | 5004 |
| 13 | 5005 |
| 13 | 5006 |
| 14 | 5007 |
| 14 | 5008 |
Таблица is_in_genre
|id_genre| id_film |
|--------|------------|
| 22 | 5001 |
| 22 | 5002 |
| 22 | 5003 |
| 23 | 5004 |
| 23 | 5005 |
| 24 | 5006 |
| 24 | 5007 |
| 24 | 5008 |
Это то, что у меня есть, но это не показывает актеров, которые играют только комедии.
select id_actor, name
from actor x where
(
select count(id_film)
from actor y
natural join plays_in
natural join movie
natural join is_in_genre
where id_genre = 4001 and x.id_actor = y.id_actor
group by id_actor
)
<=
(
select count(id_film)
from actor y
natural join plays_in
natural join movie
natural join is_in_genre
where id_genre != 4001 and x.id_actor = y.id_actor
group by id_actor
)