Oracle/SQL Fundamentals I

8일차 # 4-18: WHERE vs. HAVING

Bohemian life 2012. 4. 13. 15:20

- 그룹 함수는 WHERE 절과 GROUP BY 절에서 사용할 수 없습니다.



  select deptno, sum(sal)

  from emp

  group by deptno;



   -----------


  select deptno, sum(sal)

  from emp                   -- 부서 테이블

  where deptno <> 20         -- 부서번호 20번

  group by deptno;



  select deptno, sum(sal)

  from emp                   /* 부서 테이블 */

  group by deptno            /* 부서별 그룹 */

  having deptno <> 20;



   -----------


  select deptno, sum(sal)

  from emp

  WHERE sum(sal) >= 9000 --> 오류: (WHERE 절에) ORA-00934: 그룹 함수는 허가되지 않습니다

  group by deptno;          



  select deptno, sum(sal)

  from emp

  group by deptno

  HAVING sum(sal) >= 9000; --> 가능



   -----------


  select detpno, sum(sal)

  from emp

  group by deptno, sum(sal); --> 오류: (GROUP BY 절에) ORA-00934: 그룹 함수는 허가되지 않습니다