*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 (차집합)