HAVING
SELECT 절에 조건을 사용하여 결과를 제한 할 때는 WHERE 절을 사용하지만 그룹의 결과를 제한 할 때는 HAVING 절을 사용한다
평소와 같은 현재 테이블
1 2 3 4 5 6 7 8 9 10 11 12 | SQL> SELECT *FROM member; ID USERNAME DEPT BIRTH SAL COMM ---------- -------------------- ------- -------- ---------- ---------- 10 아이유 로엔 93/05/16 1000 800 11 삼도다 컴알못 91/08/12 500 12 호날두 레알 85/02/05 2000 1000 13 메시 바르샤 87/06/24 3000 100 14 라모스 레알 86/03/30 1500 800 15 크로스 레알 90/01/04 1300 500 6 개의 행이 선택되었습니다. | cs |
부서(DEPT)별로 그룹지은 후, 그룹 지어진 부서별 평균 급여가 1000 이상인 부서이름과 부서별 평균 급여를 출력 할 경우
먼저 그룹으로 묶어 평균 급여를 출력 했다.
1 2 3 4 5 6 7 8 | SQL> SELECT DEPT, AVG(SAL) FROM member group by DEPT; DEPT AVG(SAL) ------- ---------- 바르샤 3000 로엔 1000 컴알못 500 레알 1600 | cs |
여기서, 평균 급여가 1000 이상인 경우를 출력 하고자 할 때, WHERE 절을 사용 하면 안된다.
그룹으로 묶인 것은 HAVING 절을 사용 하자
1 2 3 4 5 6 | SQL> SELECT DEPT, AVG(SAL) FROM member group by DEPT HAVING AVG(SAL) > 1000; DEPT AVG(SAL) ------- ---------- 바르샤 3000 레알 1600 | cs |
※HAVING 절을 사용하여 로엔과 컴알못 부서(DEPT)가 출력되지 않았다.
정리하여, SELECT 절에 조건을 사용하여 결과를 제한 할 때는 WHERE 절을 사용하지만, 그룹의 결과를 제한 할때는 HAVING 절을 사용한다.
'DATABASE > ORACLE' 카테고리의 다른 글
[Oracle] SQL Self Join (0) | 2018.04.20 |
---|---|
[Oracle] SQL JOIN (0) | 2018.04.20 |
[Oracle] SQL GROUP BY 절 (0) | 2018.04.20 |
[Oracle] SQL 그룹 함수 집계 데이터 (0) | 2018.04.20 |
[Oracle] SQL 조건식 (0) | 2018.04.20 |