본문으로 바로가기
반응형

 

 

 

 

 

 

 

지난 포스팅에서 SQL 함수에 대해서 다뤄봤습니다.

 

 

https://healthdevelop.tistory.com/entry/db4

 

[Database] SQL 문자열 함수 | SQL 문자열 길이, 문자 제거, 대문자 변환, 문자열 붙이기, 문자열 변환 |

지난 포스팅에서 SQL(INSERT, DELETE,UPDATE)과 DDL(CREATE, ALTER, DROP)에 대해서 다뤄봤습니다. https://healthdevelop.tistory.com/entry/db3 [Database] SQL | DML | DDL | TCL | sql 기본키 설정 | sql 외..

healthdevelop.tistory.com

 

 

이번 시간에는 SQL 집계 함수와 정렬에 대해서 다뤄보고자 합니다.

 

 

 

 




 

 

▶ ORDER BY

 

 

 

 

ORDER BY란,

 

 

SELECT한 칼럼에 대해 정렬을 할 때 작성하는 구문으로
SELECT 구문의 가장 마지막에 작성하며 

실행 순서 역시 가장 마지막에 수행됩니다.

 

 

 

 

표현식은 아래와 같습니다.

 

 

 

 

 

 


 

▶ GROUP BY

 

 

 

 

GROUP BY란,,

 

 

산출하고자 하는 결과를 통합시켜주는데요.

 

그룹 함수는 단 한 개의 결과 값만 산출하기 때문에 

그룹이 여러 개일 경우 오류가 발생합니다.

 

따라서, 여러 개의 결과 값을 산출하기 위해 그룹 함수가 적용될 그룹의 기준을
GROUP BY절에 기술하여 사용해야 합니다.

 

 

 

 

EX) GROUP BY 적용/미적용 예

 

 

 

 

 

 

예시는 아래와 같습니다.

 

 

 

 

 

 

 


 

▶ HAVING

 

 

 

 

 

그룹 함수로 값을 구해올 그룹에 대해 조건을 설정할 때 HAVING절에 기술합니다.
(WHERE절은 SELECT에 대한 조건)

 

 

 

예시는 아래와 같습니다.

 

 

 

 

 


 

▶ ROLLUP과 CUBE

 

 

 

ROLLUP과 CUBE

 

그룹 별 산출한 결과 값의 집계를 계산하는 함수인데요.

 

 

 

ROLLUP이란,

 

인자로 전달받은 그룹 중 가장 먼저 지정한 그룹별로
추가적 집계 결과 반환하는 함수입니다.

 

 

 

 

CUBE란,

 

인자로 지정된 그룹들로 가능한 모든 조합 별로 집계한 결과 반환하는 함수입니다.

 

 

 

 

예시를 통해 이해를 해봅시다.

 

 

 

 

 

위와 같이 ROULLUP을 사용했을 때,

 

DEPT_CODE와 JOB_CODE 별로 합계를 나타내고

추가적으로 집계함수도 적용되어 조회됩니다.

 

 

 


 

 

 

 

위와 같이 CUBE를 사용했을 때,

 

DEPT_CODE와 JOB_CODE 별로 가능한 모든 조합을 조회합니다.

 

 

 

 


 

 

▶ 집합 연산자

 

 

 

 

집합 연산자란,



여러 개의 SELECT 결과물을 하나의 쿼리로 만드는 연산자인데요.

 

 

 

 

 

 

그림으로 보면 아래와 같습니다.

 

 

 

 

수학의 집합 연산과 똑같습니다.

 

 

자세한 설명은 아래에서 차근히 설명하겠습니다.

 

 

 

 

 

 


 

 

 UNION

 

 

 

 

UNION 연산자는,

 

 

여러 개의 쿼리 결과를 합치는 연산자로 중복된 영역은 제외하여 합칩니다.

 

 

 

예시 및 결과는 아래와 같습니다.

 

 

 

 

 

 


 

 

 INTERSECT

 

 

 

 

INTERSECT 연산자는,

 

 

여러 개의 SELECT 결과에서 공통된 부분만 결과로 추출(교집합)합니다.

 

 

 

 

예시 및 결과는 아래와 같습니다.

 

 

 

 

 


 

 

 UNION ALL

 

 

 

 

UNION ALL 연산자는,

 

 

여러 쿼리 결과를 합치는 연산자로 중복된 영역 모두 포함하여 합칩니다.

 

 

 

 

예시 및 결과는 아래와 같습니다.

 

 

 

 

 

 


 

 

 MINUS

 

 

 

 

MINUS 연산자는,

 

 

선행 SELECT 결과에서 다음 SELECT 결과와 겹치는 부분을 제외한
나머지 부분을 추출(차집합)합니다.

 

 

 

 

예시 및 결과는 아래와 같습니다.

 

 

 

반응형