개인적으로 SQL 문의 꽃이 아닐까 생각한다
원하는 조건은 단순하지 않다.
원하는 sql문을 또 sql문에 적용시켜 값을 가져오는 복합적 성질을 띈다고 생각한다.
inner join이 쉽거나 서브쿼리가 쉽거나 나는 후자였다.
Q.--전체 사원의 평균급여보다 급여가 많은 사원 정보를 검색하라.
바로 예제로 들어가보자 보면이제 위의 조건문이 SQL문으로 스르륵 읽혀야한다.
적어도 서브쿼리를 바로 적용하기 위해서는 말이다.
영어구문처럼 뒤의 구문(급여가 많은 사원정보 검색) 은 앞쪽으로
앞의 구문(전체 사원의 평균 급여보다~)는 뒤로 보낼 생각을 해보자
보다 는 중간에 비교 및 연산을 연결 시켜주는 다리다
영어구문 처럼 뒤에서 와보겠다.
'전체 사원의 평균 급여' 를 일단 구해보자
SELECT AVG(SALARY) FROM EMPLOYEE; 아닌가?
보자마자 쿼리문이 튀어나왔다면 벌써 절반했다.
그럼 우린이제 그 전체사원의 평균 급여보다 큰,많은 사원정보만 찾으면 된다.
사원 정보와 급여를 연결 시키는거다
SELECT * FROM EMPLOYEE WHERE SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE);
가독성이 좋았으면 좋겠다.
우리는 사원중에 평균 급여를 뽑아내어 그 급여보다 큰 사원정보를 정확히 출력했다.
결과에 의심이 없으며 만족스럽나요?
뒷 구문만 따로 실행하면 이런 결과가 나옵니다 (실행먼저 하셔서 확인해보고 앞 구문 작성하셔도 좋습니다)
네 맞습니다 평균급여가 2073보다 큰 급여 값을 가진 사원들의 정보임을 증명해줍니다 ㅎㅎ
'Database > Oracle' 카테고리의 다른 글
Spring Frame work CRUD -Oracle DB(employee) (0) | 2021.07.05 |
---|---|
[Oracle] 7.Oracle 문제 풀이 정리 (0) | 2021.06.23 |
[Oracle] 6. 다양한 함수 (0) | 2021.06.07 |
[Oracle] 5.Order by (0) | 2021.06.07 |
[Oracle] 4.Group by / Having (0) | 2021.06.04 |
댓글