Ошибка SQL-запроса о movie.title неверна - PullRequest
1 голос
/ 14 марта 2019
SELECT TOP(100) M.title, count(WH.movie_id)
FROM Movie AS M 
inner join WatchHistory AS WH ON M.movie_id = WH.movie_id
GROUP BY WH.movie_id, M.title, count(WH.movie_id)
ORDER BY count(WH.movie_id) ASC;

BlockquoteColumn 'Movie.title' недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.

Мое задание - выполнить следующий запрос:

Показать 100 фильмов, которые прошли так далеко были просмотрены. Это также означает 0 раз [название фильма, количество просмотров]. Сделайте View для этой информации требование.

выдает ошибку выше

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Существует множество проблем:

  • count(WH.movie_id) удалено из GROUP BY
  • Добавлен псевдоним [CountViews]
  • Псевдоним, используемый в ORDER BYвместо агрегата

Исправлен SQL:

SELECT TOP(100) M.title, count(WH.movie_id) as [CountViews]
FROM Movie AS M 
inner join WatchHistory AS WH ON M.movie_id = WH.movie_id
GROUP BY M.title
ORDER BY [CountViews] ASC;
1 голос
/ 14 марта 2019

Вы должны группировать только по M.title.Если вы собираетесь группировать строки, решите, какие столбцы будут сгруппированы.Помните, что в предложение SELECT могут в конечном итоге быть включены только столбцы в предложении GROUP BY, в дополнение к агрегатным функциям, таким как COUNT.Сгруппированные агрегатные функции работают с наборами строк, определенных в предложении GROUP BY, и возвращают итоговый результат.Примеры включают SUM, MIN, MAX COUNT и AVG.В отсутствие предложения GROUP BY все строки считаются одним набором;агрегация выполняется на всех из них.

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