2016-06-20 5 views
-2

한계 쿼리를 사용하여 상위 5 명의 디렉터 목록을 얻습니다.마지막 제한 행의 값이 같습니다.

a 137 
b 120 
c 90 
d 76 
e 52 

실제로 작동하지만 마지막 행과 동일한 이름의 작품도 있습니다. 그리고 그것은 usally

f 52 
g 52 
h 52... 

쿼리는 ... 발생합니다

SELECT 
    T_people.person, 
    COUNT(ID_films) AS CountOfID_films 
FROM 
    ((MT_films 
    JOIN ST_peoplefilms ON ((MT_films.ID_films = ST_peoplefilms.ID_films))) 
    JOIN T_people ON ((T_people.ID_person = ST_peoplefilms.ID_person))) 
GROUP BY T_people.person, T_people.man 
HAVING (T_people.man = 1) 
ORDER BY COUNT(ST_peoplefilms.ID_films) DESC 
LIMIT 5 

감사는 상위 5 합계를 제공하는 하위 쿼리를 작성 많은에게

+0

음, 질문은 마지막 행과 함께 모든 동일한 값을 얻는 것입니다. 감사의 글 –

+0

원하면 다음의 간단한 두 단계 과정을 따르십시오. 1. 아직 작성하지 않았다면 문제를보다 쉽게 ​​복제 할 수 있도록 적절한 CREATE 및 INSERT 문 (및/또는 sqlfiddle)을 제공하십시오. 2. 아직 수행하지 않았다면 1 단계에서 제공된 정보와 일치하는 원하는 결과 세트를 제공하십시오. – Strawberry

답변

0

을합니다. 그런 다음 지금 가지고있는 항목을 사용하고 (LIMIT 5 및 주문을 삭제할 수 있음) 합계에 대해 하위 쿼리에 INNER JOIN을 적용합니다. 그러면 관련성이없는 모든 행이 필터링됩니다.

+0

친애하는 Gruber에게 이미 상위 5 개 이름을 반환하지만 하위 쿼리를 결합하여 5 번째와 모든 동등 함을 반환하는 방법 하나? 감사합니다 –

+0

@ Kostas Konstantinidis : 최상위 5 개 중 합계가있는 항목이 모두 반환되도록하는 방법으로 상위 5 개 합계 (하위 쿼리에있는 정수 값)와 조인합니다. – Gruber

관련 문제