2012-11-07 4 views
2

JOBS이라는 테이블의 고유 한 행 항목에서 모든 값을 검색하려면 SQL 쿼리를 만들어야합니다.참조 테이블의 외래 키를 사용하여 가장 반복되는 값을 반환하는 방법

그러나 그렇게하려면 EMPLOYEES이라는 테이블을 사용해야하는데이 테이블에는 JOBS 테이블에 외래 키가 있습니다. 조건은 EMPLOYEES 테이블에서 job_id가 반복되는 테이블 JOBS에서 job_title을 반환하는 것입니다.

하나의 SQL 문으로 수행해야합니다.

원하는 출력 :

Stock Clerk 

이것은 내가

SELECT job_id 
FROM (SELECT job_id FROM employees GROUP BY job_id ORDER BY COUNT(*) desc) 
WHERE ROWNUM <= 1; 

을 가지고 있지만 그것이 내가 필요 EMPLOYEES에서 job_title 때문에 충분하지 않은 쿼리입니다.

어떻게 할 수 있습니까? 나는 이것은 오라클 11g 데이터베이스

을 사용하고 내 테이블처럼 보이게하는 방법 :

직원

EMPLOYEES

JOBS

JOBS

+0

실제 전화 번호와 실제 급여가 있습니까? 사람들? 그렇지 않다면 거기에 생성 된 테스트 데이터입니다. –

답변

1
SELECT job_title from JOBS where JOB_ID = (
SELECT job_id FROM employees GROUP BY job_id ORDER BY COUNT(*) desc LIMIT 1) 
당신이 오라클에 LIMIT 1을 사용할 수 있는지

이 렇게 나 기억하지 마십시오, 그렇지 않은 경우 다음

SELECT job_title from JOBS where JOB_ID = (
SELECT job_id FROM employees GROUP BY job_id ORDER BY COUNT(*) desc where ROWNUM=1) 

는 또한 상단 2+ 작업 ID 년대가 동일한 경우, 그것은 단지 그들 중 하나를 인쇄 할 수 있습니다 (즉, SA_REP와 ST_CLERK가 모두 4 번 나타난 경우 그 중 하나만 표시됨) 요구 사항이 무엇인지는 명확하지 않지만 위의 쿼리는 그 중 하나만 반환합니다

관련 문제