오라클 DB(sql)_기초_11 (Group by)
데이터베이스 2021. 5. 1. 19:47그룹함수(?) : 그룹당 1개의 결과값을 나타내주기 때문에 그룹함수라고 부름
- AVG
- COUNT
- MAX
- MIN
- SUM
- STDDEV
- VARIANCE
<Avg, sum 함수>
Avg와 sum은 숫자데이터만 연산가능함.
<min, max함수>
- 아스키코드값을 비교하여 값을 비교함. 그러므로 모든 데이터타입에 사용 가능함.
<Count(*(column명 써도 됨))>
: 출력되는 테이블의 행수를 반환함
Count의 경우 null값을 받아들이지 않고 계산하지 않는다.
Null값이 많은 경우는 nvl함수를 중첩시켜 사용해야 제대로 된 값을 얻을 수 있음.
****column을 넣어서 계산하는 그룹함수는 전부다 null값을 무시함. Count(*)의 경우는 행갯수를 반화하는 함수이기때문에 null값이 있는 행의 갯수도 반환하여 나타냄.
Distinct옵션을 사용(그룹함수 내부에서 받아들이는 값에 영향을 미치는)할 수 있음.
Distinct를 사용함에 따라 사원이 근무하는 부서의 갯수로 변경됨
(예제) 부서별 월급의 총합을 구하시오.
department_id가 그룹화 되어있찌 않기때문에 이러한 에러가 발생하게 됨.
Group by를 사용해 group을 만들어주어 그룹함수가 계산이 가능하도록 함.
그룹함수가 쓰여지지 않은 column이 나타나면 꼭 group_by절에 쓰여있어야함.
그룹화가 발생할때 select list 에 적혀있는 column의 순서로 발생하여 그 뒤로 멀티플 그룹화가 진행된다.(select list의 첫번째 column에 있는게 가장먼저 그룹화 진행)
Where절은 행을 제한하기 때문에 그룹을 제한하는 조건문을 작성할 수 없음. 그룹을 제한할 수 없음.
Having 절은 그룹함수전용이므로 where를 쓰듯이 뒤에 column명을 넣어주면 에러가 발생하게 됨. 무조건 뒤에 그룹함수가 쓰여야 함.
그룹화 >> 중복제거, 멀티플중복제거, 그룹함수 값 추출을 위해 사용
'데이터베이스' 카테고리의 다른 글
오라클 DB(sql)_기초_12 (서브쿼리,Sub query) (0) | 2021.05.01 |
---|---|
오라클 DB(sql)_기초_11_예제풀이 (0) | 2021.05.01 |
오라클 DB(sql)_기초_10 (Join) _ 예제풀이 (0) | 2021.05.01 |
오라클 DB(sql)_기초_10 (Join) (0) | 2021.05.01 |
오라클 DB(sql)_기초_1~9 예제풀이 (0) | 2021.05.01 |