Я безуспешно пытаюсь заказать столбец с псевдонимом.
Столы:
Фильм ( mID , название , год , режиссер ) Русский: Есть фильм с идентификационным номером mID, названием, годом выпуска и режиссером.
Рецензент ( rID , имя ) Русский: Рецензент с идентификационным номером rID имеет определенное имя.
Рейтинг ( rID, mID, звезды, дата рейтинга) Русский: Рецензент rID присвоил фильму mID число звезд (от 1 до 5) на определенную дату рейтинга.
Вопрос домашнего задания:
Для каждого фильма верните название и «распределение оценок», то есть разницу между самой высокой и самой низкой оценками, присвоенными этому фильму. Отсортируйте по рейтингу от высшего к низшему, а затем по названию фильма.
Я пробовал этот запрос несколькими способами, но безуспешно.
SELECT Movie.Title, (MAX(Rating.stars) - MIN(Rating.stars)) AS Spread
FROM Movie
JOIN Rating ON Movie.mID = Rating.mID
GROUP BY Rating.mID
ORDER BY Movie.Title
ORDER BY Spread
Я ожидаю вывод ниже:
MOVIE | SPREAD
Avatar | 2
Gone with the Wind | 2
Raiders of the Lost Ark | 2
E.T. | 1
Snow White | 1
The Sound of Music | 1
но фактический вывод: не удалось выполнить запрос: рядом с «ORDER»: синтаксическая ошибка.
SQLite ожидает 1 предложение ORDER BY
, вам нужно добавить второе ORDER BY
к первому с запятой.
ORDER BY Movie.Title, Spread
ORDER BY
с псевдонимом столбца работает, потому что во всех СУБД предложение ORDER BY
выполняется после SELECT
ORDER BY Spread DESC, Movie.Title ;
Добавьте ``` до и после кода, чтобы отформатировать его правильно. Также, пожалуйста, добавьте некоторые пояснения