У меня есть БД, которая представляет собой просто таблицу с 3 столбцами: viewer_id, movie_id, Рейтинг (INTEGER) (INTEGER) (TEXT)
Где строка в этой таблице представляет этоопределенный зритель посмотрел определенный фильм.
Если зритель еще не оценил фильм - значение рейтинга равно NULL.
Если зритель оценил фильм, чемЗначение рейтинга: LIKE \ DISLIKE
Мне нужно написать запрос, который возвращает 10 лучших идентификаторов зрителей с наибольшим количеством просмотров и рейтингом, упорядоченным по количеству просмотров, а затем рейтинг (оба в порядке убывания).
Пока что я написал запрос, который возвращает таблицу с viewer_id, movie_watch_count с правильной информацией.
SELECT viewer_id , count(*) AS movies_watched
FROM viewers_movies_rankings
Group By viewer_id
Я попытался добавить еще один столбец в эту таблицу - "Ranking_count", который будет считатьдля каждого viewer_id количество строк, где значение ранжирования! = ноль.(Так что я также получу количество фильмов, которые оценил зритель, так что единственное, что после этого нужно сделать, это отсортировать по этим столбцам)
, но все, что я написал, не сработало.Например (не работает)
SELECT viewer_id , count(*) AS movies_watched,
COUNT(*) AS movies_watched
HAVING ranking != null
FROM viewers_movies_rankings
Group By viewer_id
Вы можете мне помочь?