데이터베이스 - Group by

Group by
실제 통계작업에서는 전체 집게보단 부분 집계를 많이 사용한다. 이를 위해 Group by로 그룹화하여 그룹함수를 적용한다. 이에 대해서 알아보도록 하자.

부서별 월급합


직책별 평균 급여를 조회하자.

nvl 처리 습관화하자!!!


where절은 그룹 함수를 사용할 수 없다. group by에서 where절을 못 쓰는 것은 아니다.

이를 해결하기 위해서 having이라는 문장을 넣어준다.


나름 내부 동작 순서가 존재한다. 따라서 having 문장에 group에 대한 조건절을 적어준다.



사원 테이블에서 부서별 급여의 한계가 9000보다 큰 경우

그룹 함수도 중첩이 가능하다.

다음처럼 emp 테이블이 주어져 있다.

이에 대해서 부서별, 직책별 월급의 합을 구해보자.

부서번호, 직책, 그리고 월급 합을 가져오는데 이를 먼저 부서번호로 그룹화하고, 해당 부서 내에서 직책별로 묶는다.


이 경우 가독성이 떨어지기 때문에 order by를 이용하여 정리해주자.

내림차순으로 하고 싶다면 desc를 뒤에 덧붙인다.

댓글

이 블로그의 인기 게시물

데이터베이스 PL/SQL - 배열과 테이블

데이터베이스 PL/SQL 변수선언

데이터베이스 PL/SQL 제어문 - 반복문