Posted by deepthi, Oct. 16, 2023, 12:41 p.m.
wanted to find why you joined to the tables again in your solution?
Here is the query which I am referring to , I am getting the solution even without joining film_category and category tables to film_revenue CTE, can you explain why you joined Again.
WITH film_revenue AS (
SELECT
F.film_id,
MAX(C.name) AS category,
SUM(P.amount) revenue
FROM payment P
INNER JOIN rental R
ON R.rental_id = P.rental_id
INNER JOIN inventory I
ON I.inventory_id = R.inventory_id
INNER JOIN film F
ON F.film_id = I.film_id
INNER JOIN film_category FC
ON FC.film_id = F.film_id
INNER JOIN category C
ON C.category_id = FC.category_id
GROUP BY F.film_id
)
SELECT * FROM (
SELECT
category,
FR.film_id,
revenue,
ROW_NUMBER() OVER(PARTITION BY category ORDER BY revenue DESC) row_num
FROM film_revenue FR
INNER JOIN film_category FC
ON FC.film_id = FR.film_id
INNER JOIN category C
ON C.category_id = FC.category_id
) X
WHERE row_num <= 2;