2014-09-09 2 views
1

mm_member 및 mm_rental 테이블을 사용하여 모든 구성원 (회원 ID, 이름 및 성) 및 임대 한 영화의 수를 모두 나열하는 쿼리를 작성하십시오. 적어도 하나의 영화를 대여 한 회원. 결과 집합을 정렬하여 첫 번째 행으로 임대 한 영화 중 가장 많은 수를 표시합니다.Oracle 영화 대여 한 사람에 대한 정보 얻기

저는 몇 시간 동안이 수업 시간에 어려움을 겪었으므로 도움이 필요합니다.

SELECT mm_member.member_id, mm_member.last, mm_member.first, count(mm_rental.member_id) 
    FROM mm_member, mm_rental 
    WHERE mm_member.member_id = mm_rental.member_id 
    AND count(mm_rental.member_id) > 0 
    ORDER BY count(mm_rental.member_id); 

가 나는 오류 : ORA-00934 : 그룹 기능은 여기에 허용되지 여기

내가 가진 것입니다.

필요한 경우 전체 데이터베이스 파일을 기꺼이 제공합니다.

+0

문제를 해결 한 경우 대답하지 않은 목록에서이 질문을 제거하기 위해 질문을 닫거나 대답을 표시하는 것을 잊지 마십시오 –

답변

1

집계 함수 COUNTGROUP BY 절없이 사용할 수 없습니다.

SELECT M.member_id 
    ,M.last 
    ,M.first 
    ,COUNT(R.member_id) AS "nb_movies" 
FROM mm_member M 
INNER JOIN mm_rental R ON R.member_id = M.member_id 
GROUP BY M.member_id, M.last, M.first 
ORDER BY COUNT(R.member_id) DESC 

나는 또한 INNER JOIN 절 대신 오래된 학교 jointure 구문을 (내가이 구문을 피할 수 제안)를 사용하기 위해 쿼리를 변경 : 여기에 누락 된 절 쿼리입니다.

희망이 도움이 될 것입니다.

+1

답변으로 저에게 오류가 발생합니다. ORA-00923 : FROM 키워드가 예상 한 곳이 아닙니다. [nb_movies]를 "nb_movies"로 변경하려고 시도했지만 어느 정도 올바른 결과를 얻었습니다. 고마워요! 당신이 당신의 대답을 조정한다면 나는 그것을 올바르게 표시 할 것입니다! – xCasper

+0

의견을 보내 주셔서 감사합니다. 내 질문이 수정되었습니다. 문제를 해결하는 데 도움이된다는 것을 알게되어 기쁘다. –

+0

@xCasper 응답하지 않은 목록에서 질문을 삭제하려면 답변으로 표시하는 것을 잊지 마세요. –