*SQL_Oracle*

DML < SELECT > GROUP BY , HAVING , 집합 연산자

깐부로부터 2021. 11. 6. 14:29

1. GROUP BY 절

그룹을 묶어줄 기준을 제시할 수 있는 구문

여러개 값들을 그룹별로 나눠서 처리할 목적으로 사용.

 

 

 

2. HAVING 절

그룹에 대한 조건을 제시하고자 할 때 사용되는 구문

(대부분의 경우 그룹함수를 가지고 조건 제시)

 

그룹함수(집계함수)는 WHERE절에 쓸 수가 없어서 HAVING절을 쓴다.

 

 

< 실행 순서 >
    5 : SELECT * /조회하려는 컬럼 / 산술연산 / 함수식 "별명"
    1 : FROM 조회테이블
    2 : WHERE 조건식
    3 : GROUP BY 그룹 기준에 해당하는 컬럼명 / 함수식
    4 : HAVING 그룹함수식에 대한 조건식
    6 : ORDER BY 정렬 기준에 해당하는 컬럼명 / 별칭 / 컬럼 순번 ASC/DESC NULL F/NULL L


< 집합 연산자 SET OPERATOR >

여러개의 쿼리문을 가지고 하나의 쿼리문으로 만드는 연산자

 

UNION : 합집합 (두 쿼리문을 수행한 결과값을 더한 후 중복되는 부분은 한 번 뺀 것)
- INTERSECT : 교집합(두 쿼리문을 수행한 결과값의 중복된 결과값 부분)
- UNION ALL : 합집합 결과에 교집합이 더해졌다!
                    (두 쿼리문을 구행한 결과값을 무조건 더함! 합집합에서 중복제거를 하지않음!)
- MINUS : 차집합 (선행 쿼리문 결과값 빼기 후행 쿼리문 결과값의 결과)

 

 

 

1. UNION(합집합) OR

 

 

2. UNION ALL (합집합 - 중복을 모두 보여준다)

 

 

 

 

3. INTERSECT (교집합)

 

 

 

4. MINUS (차집합)

부서'D5'에 있는 사람들중에 급여 300만원 이상인자들은 다 빼버림.

 

'*SQL_Oracle*' 카테고리의 다른 글

DDL < CREATE >  (0) 2021.11.08
DML < SELECT > SUBQUERY(서브쿼리)  (0) 2021.11.06
DML < SELECT> JOIN  (0) 2021.11.05
DML <SELECT> 함수 - 그룹 함수  (0) 2021.11.04
DML < SELECT> 함수 - 단일행 함수 2  (0) 2021.11.04