* 그룹 함수 : 레코드를 그룹화
group by 컬럼 : 컬럼을 기준으로 레코드를 그룹화 함.
group by 구문이 없는 경우는 모든 레코드를 한개의 그룹으로 그릅화.
그룹함수와 컬럼을 함꼐 조회하기 위해서는 반드시 해당 컬럼을 group by 에서 설정해야함
count(컬럼명) : 컬럼의 값이 null이 아닌 레코드의 건수 리턴
count(*) : 모든 컬럼을 기준으로 건수 리턴
count(*) : 컬럼의 값이 null이 아닌 레코드의 건수
ex) 각 학년의 학생 수 조회
select grade, count(*) from student group by grade;
- sum() : 합계
select sum(pay) from professor; // 교수들의 전체 급여 합계 출력하기
- avg() : 평균 (null 값은 제외됨)
select deptno, count(*), sum(bonus),avg(nvl(bonus,0)) from professor group by deptno;
//교수들의 부서별 인원수, 보너스 합계, 평균 출력
- max(), min() : 최대값, 최소값
select max(height),min(height), avg(height) from student;
// 학생 중 키가 가장 큰 학생의 키, 키가 가장 작은 학생의 키, 평균키 조회하기
- having : 그룹함수의 조건문
ex) 학생 중 키가 가장 큰 학생의 키, 키가 가장 작은 학생의 키, 평균키 조회하기.
단,평균 키가 170 이상인 학년만 조회하기
select grade, max(height),min(height), avg(height) from student group by grade having avg(height) >= 170;
- 표준편차 : stddev()
- 분산 : variance()
select max(pay), min(pay), avg(pay), stddev(pay), variance(pay) from professor;
// 교수중 가장 많은 급여와 가장 적은 급여, 평균급여, 급여의 표준편차, 급여의 분산 값 출력하기.
'Oracle SQL' 카테고리의 다른 글
Oracle SQL #7 Subquery (단일행, 다중행) (1) | 2022.03.20 |
---|---|
Oracle SQL #6 Join (4) | 2022.03.20 |
Oracle SQL #4 문자 관련 함수,수 관련 함수, 날짜함수, 형변환 함수, 기타 함수 (0) | 2022.03.19 |
Oracle SQL #3 Order by, union, Union all (0) | 2022.03.19 |
Oracle SQL #2 desc, distinct, between, like, in, not like, not in, is null, in not null (0) | 2022.03.19 |