본문 바로가기
국비 과정/Oracle DataBase

국비 - 0826 ( 그룹함수 , GROUP BY 절 ,HAVING 절 , JOIN )

by 코딩호야 2022. 8. 26.

그룹 함수

구분                         의미

SUM                       그룹의 누적 합계를 반환
AVG                        그룹의 평균을 반환
COUNT                   그룹의 총 갯수를 반환
MAX                        그룹의 최대값을 반환
MIN                         그룹의 최소값 반환
STDDEV                 그룹의 표준 편차를 반환
VARIANCE              그룹의 분산을 반환

 

select SUM(sal) from emp;
select avg(sal) from emp;
select count(sal) from emp;
select max(sal) from emp;
select min(sal) from emp;

 


VARIANCE(expr)  , STDDEV(expr)  => standard deviation 
VARIANCE 는 분산율 ,STDDEV는 표준편차를 구해 반환한다.

 

분산이란 주어진 범위의 개별 값과 평균값과의 차이인 편차를 구해
이를 제곱해서 평균한 값을 말하며, 표준편차는 분산값의 제곱근이다. 

 

 

SELECT 문에 그룹함수를 사용 하는 경우 그룹 함수를 적용하지 않는 단순 컬럼은 올 수 없다.

Ex ] select ename , sum(sal) from emp;     => 에러  sum 그룹함수를 사용했으므로 ename 단순컬럼이 올수없다.

 

 

GROUP BY 절

특정 컬럼을 기준으로 그룹화 하여 테이블에 존재하는 행들을
그룹별로 구분하기 위해 사용하낟.

어떤 컬럼을 기준으로 그룹함수를 적용해 줄지 기술해 주어야 할 경우에 SELECT 문에 
GROUP BY 절을 추가해 적 뒤에 해당 컬럼을 기술한다.

형식

SELECT         컬럼명, 그룹함수,
FROM             테이블명
WHERE          조건
GROUP BY     컬럼명

 

HAVING 절 

GROUP BY 절에 의해 생성된 결과 값 줄 원하는 조건에 부합하는 자료만 보고자 할때 사용한다.

select 절에 조건을 사용하여 결과를 제한할때는 where 절을 사용하며 , 그룹의 결과를 제한할때는
HAVING 절을 사용합니다.

 

 

Q ] 부서별 평균급여를 구하고 그 결과 평균급여가 2000 이상인 부서만 출력하세요.


A ] select deptno , avg(sal) from emp group by deptno 
     HAVING avg(sal) >= 2000;

 

 

JOIN (조인)


 각각의 테이블에 분리되어 있는 연관성 있는 데이터들을 연결하거나 
 조합하여 데이터를 사용할수 있다면 중료한 정보로써
 가공될 수 있으며 이런 작업들을 JOIN(조인) 이라고합니다.

 여러 테이블에 흩어져 있는 정보 중에서 사용자가 필요한 정보만 가져와서
 가상의 테이블 처럼 만들어서 결과를 보여준다.

 종류                                   의미

 Equl Join                    동일 컬럼을 기준으로 조인
 Nan_Equl Join         동일 컬럼이 없이 다른조건을 사용하여 조인
 Outer Join                 조인 조건에 만족하지 않은 로우도 나타냄
 Self Join                    한 테이블 내의 조인

 

 Cross Join  =  (Cartesian Product : 카티션 곱)  // 거의 사용 X

 2개 이상의 테이블이 조인될때 where 절에 의해 공통되는 컬럼에 의한 결합이 
 발생하지 않는 경우의 의미;

 Ex] select * from emp , dept;

 

Non Equi join
    
동일 컬럼 없이 다른 조건을 사용하여 조인 할때 쓰인다.

 

Q ] 각사원의 급여가 몇 등급인지 살펴보는 쿼리문
A ] select ename , sal , grade  from emp , salgrade 
where sal between losal and hisal;