Вам не нужен подзапрос:
SELECT c.name as category_name, COUNT(*) as rental_count,
ROW_NUMBER() OVER (PARTITION BY c.name ORDER BY COUNT(*) DESC)
FROM category c JOIN
film_category USING (category_id) JOIN
inventory USING (film_id) JOIN
rental r USING (inventory_id) JOIN
film f USING (film_id)
GROUP BY 1
ORDER by 2, 1;
Вам также не нужно объединение с film
, потому что вы ничего не используете из этой таблицы.
Ваш запроспроисходит сбой, потому что список столбцов идет в предложении SELECT
.Список FROM
следует за SELECT
.