I don’t know why it’s result like every avg is the same values
I’m trying to solve this remove/add group by I still don’t know why, please help me if I have to add or remove anything else
It’s result like this
| name | avg(length) |
|---|---|
| Action | 111 |
| Animation | 111 |
same avg values
I want result like this :
| name | avg(length) |
|---|---|
| Action | 142 |
| Animation | 166 |
difference avg by their category
This is my statements
SELECT c.name, AVG(f.length)
FROM film f, category c, film_category fc
WHERE fc.film_id = f.film_id
GROUP BY c.name
>Solution :
You are not joining the category table. This results in a cross join which generates # of categories * # of film_categories records.
SELECT c.name, AVG(f.length)
FROM
film f
INNER JOIN film_category fc
ON f.film_id = fc.film_id
INNER JOIN category c
ON fc.category_id = c.category_id
GROUP BY c.name