SQL, имеющий и макс - PullRequest
       1

SQL, имеющий и макс

0 голосов
/ 15 марта 2019

Мой запрос:

SELECT P.lastname, P.firstname, MAX(MD.movie_id)
FROM Person AS P
INNER JOIN Movie_Directors AS MD ON P.person_id = MD.person_id
INNER JOIN Movie AS M ON M.movie_id = MD.movie_id
GROUP BY P.firstname, P.lastname, MD.movie_id
HAVING MAX(MD.movie_id);

Я получаю эту ошибку:

Выражение не булева типа, указанное в контексте, где ожидается условие, рядом с ';'

Мне нужно получить SQL-запрос для следующего вопроса, я не понимаю, ошибка может кто-нибудь помочь?

В запросе должен отображаться режиссер, который выпустил больше всего фильмов [имя, фамилия].

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Предложение ROW_NUMBER может вам помочь. Надеюсь, у меня нет опечаток в этом. Также, если у вас есть person_id, я рекомендую вам использовать вместо имени, фамилии раздела.

WITH MaxMovies AS  
(
SELECT P.lastname, P.firstname, ROW_NUMBER OVER (PARTITION BY firstname, lastname ORDER BY movie_id DESC) MOVIE_NUMBER
FROM Person AS P
inner join Movie_Directors AS MD ON P.person_id=MD.person_id
inner join Movie AS M ON M.movie_id=MD.movie_id
GROUP BY P.firstname, P.lastname
)
SELECT * FROM MAXMOVIES WHERE MOVIE_NUMBER=1

Ссылка: https://docs.microsoft.com/en-us/sql/t-sql/functions/row-number-transact-sql?view=sql-server-2017

0 голосов
/ 15 марта 2019

В предложении HAVING необходимо указать логическое условие, например HAVING MAX (MD.movie_id)> 100

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...