У меня есть таблица актеров, где каждый актер появлялся в разных фильмах, и я стараюсь выбирать только тех актеров, которые появлялись больше, чем в среднем на одного актера.
Вот моя попытка, но результат дает одно и то же имя с разными значениями внешнего вида, поэтому я думаю, что у меня ошибка
SELECT
a.first_name AS fname,
a.last_name AS lname,
films_per_actor.num_films
FROM
actor as a,
(
SELECT
AVG(num_films) AS avg_films_num
FROM
(
SELECT
COUNT(film_id) AS num_films,
a.actor_id
FROM
film_actor as f_a,
actor as a
WHERE
f_a.actor_id = a.actor_id
GROUP BY
actor_id
) as films_per_actor1
) as avg_films,
(
SELECT
COUNT(film_id) AS num_films,
a.actor_id
FROM
film_actor as f_a,
actor as a
WHERE
f_a.actor_id = a.actor_id
GROUP BY
actor_id
) as films_per_actor
WHERE
films_per_actor.num_films > avg_films.avg_films_num + 10
ORDER BY
fname,
lname
но результат
"ADAM" "GRANT" "40"
"ADAM" "GRANT" "39"
"ADAM" "GRANT" "42"
"ADAM" "GRANT" "41"
"ADAM" "HOPPER" "40"
"ADAM" "HOPPER" "39"
"ADAM" "HOPPER" "42"
"ADAM" "HOPPER" "41"
"AL" "GARLAND" "40"
"AL" "GARLAND" "39"
"AL" "GARLAND" "41"
"AL" "GARLAND" "42"
"ALAN" "DREYFUSS" "39"
"ALAN" "DREYFUSS" "40"
"ALAN" "DREYFUSS" "42"
"ALAN" "DREYFUSS" "41"