2017-05-17 3 views
2

이 문제를 놓치게 되어서도 솔루션을 찾을 수 없거나 도움이 필요하거나 올바른 방향으로 안내해줍니다.장르의 영화 당 평균 장르

테이블은 여러 영화를 여러 장르로 분류합니다 (예 : Toy Story는 장르에 있습니다. 어린이, 코미디 및 애니메이션.

나는 어떤 장르가 가장 명료하고 어느 정도 분열되어 전형적인 영화의 여러 장르에 올라있는 경향이 있는지 알아 내려고 노력 중이다.

데이터 세트의 각 장르에 대해 평균 얼마나 많은 장르가 해당 장르의 영화입니다. 예를 들어, 액션 영화는 1.3 장르이고 평균 어드벤처 영화는 2.9 장르이므로 액션 영화는 더 잘 정의 된 장르입니다.

다음은 테이블의 샘플하지만 여기 참조를 위해 그 (것)들에있는 테이블과 값으로 SQL 편집기입니다 : https://blazerme.herokuapp.com/queries/new

3 테이블 :

장르 테이블 :

id name 
1 Action 
2 Adventure 
3 Animation 
4 Children's 
5 Comedy 

genre_movies 테이블 :

id movie_id  genre_id 
1 1(Toy Story) 3(Animation) 
2 1(Toy Story) 4(Children's) 
3 1(Toy Story) 5(Comedy) 
4 2(GoldenEye) 1(Action) 
5 2(GoldenEye) 2(Adventure) 
6 2(GoldenEye) 16(Thriller) 

영화 테이블 :

id title    release_date 
1 Toy Story (1995) 1995-01-01 
2 GoldenEye (1995) 1995-01-01 
3 Four Rooms (1995) 1995-01-01 

지금까지 최선의 노력은 genre_id의 개수 이상으로 시도합니다.

SELECT 
    name, AVG(c.count) 
FROM 
    (SELECT 
     g.name AS name, COUNT(gm.genre_id) AS count 
    FROM 
     genres g 
    INNER JOIN 
     genres_movies gm ON g.id = gm.genre_id 
    INNER JOIN 
     movies m ON m.id = gm.movie_id 
    GROUP BY 
     g.name) c 
GROUP BY 
    name 

을하지만 단순히 나에게 genres_movies 테이블에서 각 장르의 수를 제공합니다 아래를 참조하십시오. 나는 이것을 각 장르의 영화 장르의 평균 장르로 바꾸는 방법을 알아낼 수 없다.

+1

당신이 질문에 더 많은 예제와 예상 출력을 추가 할 수 있을까요? 공포 영화에 대한 기록을 볼 수 없습니다. –

+0

https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql- 쿼리 – Strawberry

+0

@DarshanMehta이 경우 공포는 장르 테이블에서 id = 11입니다. 나는 호러를 액션으로 대체하여 조금 명료화했다. 이 질문은 나를 이해하는 것이 힘들다. 그래서 당신이 더 명확성을 필요로한다면 알려줘. 나는 지금까지 한 작업과 테이블에 몇 가지 예제를 추가했습니다. – CharlieE

답변

0

내가 원하는 주 정보로 가장 안쪽의 쿼리를 먼저 작성한 다음 바깥쪽으로 작업하여 이러한 문제를 해결합니다.

필요한 핵심 정보는 다음과 같습니다

select movie_id, count(*) from genres_movies group by movie_id 

전체 쿼리

select G.name, Round(avg(numgenres),2) as MuddleFactor 
from genres_movies GM 

inner join 
(select movie_id, count(*) as numGenres 
from genres_movies 
group by movie_id) MNG 
on MNG.movie_id = GM.movie_id 

inner join genres G 
on GM.genre_id = G.id 

group by G.name 
order by MuddleFactor desc 
관련 문제