Мне дали базу данных ниже:
movie(movie_id, movie_name, production_year, votes, ranking, rating)
movie_info(movie_id, movie_genre_id, note)
movie_genre(movie_genre_id, genre_name)
person(person_id, person_name, gender)
role(person_id, movie_id, role_name, role_type_id)
role_type(role_type_id, type_name)
Меня попросили отобразить в списке имена 7 лучших режиссеров, по крайней мере, 3 фильма, количество фильмов, в которых они находятся, и среднее значение.рейтинг своих фильмов, отсортированный по среднему рейтингу.С помощью приведенного ниже запроса мне удалось узнать имя режиссеров, количество фильмов, в которых они находятся, и средний рейтинг, но у меня возникли проблемы с его ограничением до топ-7 и сортировкой их по среднему рейтингу.Я пытался использовать LIMIT и ORDER BY, но я получаю синтаксические ошибки.
SELECT
person_name, COUNT(role.movie_id), AVG(rating)
FROM
movie
INNER JOIN
role
ON role.movie_id = movie.movie_id
INNER JOIN
person
ON role.person_id = person.person_id
INNER JOIN
role_type
ON role.role_type_id = role_type.role_type_id
WHERE
type_name = 'director'
GROUP BY
person_name
HAVING
COUNT(role.movie_id) > 2;
Я могу даже заказать по количеству фильмов, которые они сделали, и ограничить его до 7 лучших, но для Бога я не могу заказатьэто по AVG (рейтинг)
person_name COUNT(role.movie_id) AVG(rating)
Hitchcock, Alfred 9 8.2888890372382
Kubrick, Stanley 8 8.2999999523163
Wilder, Billy 6 8.3000000317891
Spielberg, Steven 6 8.4000000953674
Scorsese, Martin 6 8.3166666030884
Nolan, Christopher 6 8.5333331425985
Tarantino, Quentin 6 8.3666666348775