inflearn logo
강의

講義

知識共有

ユン・ジェソンのOracle SQL Database 11g PL/SQL Developer

第23講:結果が1つ以上のサブクエリ

급여 최저치 문제

217

Jaeyoung

投稿した質問数 1

0

안녕하세요 선생님,

좋은 강의 보여주셔서 감사합니다. 다름이 아니라 23강에서 문제 풀이 도중 이해가 안 가는 부분이 있어서 이렇게 여쭙습니다.

<문제>

-- 각 부서별 급여 최저치보다 더 많이 받는 사원들의 사원번호, 이름, 급여를 가져온다.

<선생님 풀이>

select empno, ename, sal

from emp

where sal > all (select min(sal) from emp group by deptno);

 

이렇게 진행되면 각 부서별 최저치에서 가장 높은 급여와 비교되는 것이 아닌가 싶어 질문드립니다. 총 인원이 14명인 경우 가장 최저치를 받는 사람들 3명(부서가 3개)을 제외하면 11명이 나와야 할 듯한데 선생님 답에서는 8명만 나와서요...

sql oracle PL/SQL dbms/rdbms

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

Jaeyoung님, 질문해 주셔서 감사합니다.

선생님의 쿼리는 ‘ALL’ 키워드를 사용하여 각 부서별로 최저 급여보다 더 많이 받는 사원들을 찾는 방식입니다. ‘ALL’은 서브쿼리의 결과로 나온 모든 값을 조건 비교에 사용하므로, 각 부서별 최저 급여 중 하나라도 초과하는 급여를 받는 모든 사원을 가져올 것입니다. 다만, 이 논리는 각각의 부서별로 그 부서의 최저 급여보다 높은 급여를 받는 직원들을 선택합니다. 올바른 결과를 얻기 위해서는 각 부서별로 비교를 달리 해야 합니다.

현재 결과가 예상과 다른 것은 쿼리에 문제가 있을 수 있다는 의미일 수 있습니다. 부서별로 최저 급여보다 높은 급여를 받는 사원의 수를 정확히 확인하려면 서브쿼리에서 각 부서의 최저 급여 데이터를 부서별로 제대로 비교하고 있는지 확인해야 합니다. 예를 들어, 다음과 같은 쿼리는 각 부서별 최저 급여와 직원의 급여를 비교하여 정확한 결과를 가져올 수 있습니다.

SELECT e.empno, e.ename, e.sal
FROM emp e
WHERE e.sal > (SELECT MIN(sal) FROM emp WHERE deptno = e.deptno);

이 쿼리는 각 사원의 급여가 그 사원이 속한 부서의 최저 급여보다 높은지를 비교합니다. 만약 선생님 답변에 혼란이 있었다면, 위 쿼리를 참고하여 다시 한번 실행해 보시길 바랍니다.

프로그래밍에 관련된 추가 질문이 있으시면 언제든지 문의해 주세요.

XE 21C 버전 다운받아 사용중인데, 저 테이블들이 없습니다..

0

199

2

join 에 in을 사용할때.

0

267

1

강의 9:15 초 커미션을 받는 사원 이요

0

300

1

16강 마지막 문제 질문

0

395

2

37강 사용자 계정 만들고 추가할 때 오류 발생

0

241

1

PTT 파일

0

409

1

기본 학습 테이블

1

392

1

제약조건 에러 ORA-02270

0

588

1

25강 마지막 문제

0

584

3

오라클 설치 마지막에 비밀번호 설정 시 무한로딩

0

558

1

기본제공되는 테이블 질문

0

564

2

25강 마지막 문제 DALLAS에 근무 하는 조건은 안넣으셨네요

0

354

1

Oracle 설치 관련 여쭤봅니다.

0

354

1

설치 중 Error 발생

0

574

1

왜 제 질문만 무시하시는지 이유가 궁금하네요

0

418

1

블로그

0

330

1

설치가 안됩니다

0

377

0

join 학습 문의

0

272

1

안녕하세요 설치관련 질문입니다.

0

272

1

안녕하세요 서브쿼리 수업중 질문있습니다.

0

200

1

안녕하세요 수업 너무 유익하게 듣고있는 학생입니다.

0

234

1

안녕하세요 2강 오라클 설치질문있습니다

0

352

1

ora-28000 the account is locked 에러 질문 드립니다.

0

624

1

프로시저

1

435

1