- GROUP BY와 함께 사용되며, 그룹에 대한 조건을 지정함
- GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 때 사용된다.
- COUNT(속성명) : 그룹별 튜플 수를 구하는 함수
- SUM(속성명) : 그룹별 합계를 구하는 함수
- AVG(속성명) : 그룹별 평균을 구하는 함수
- MAX(속성명) : 그룹별 최대값 구하는 함수
- MIN(속성명) : 그룹별 최소값 구하는 함수
- STDDEV(속성명) : 그룹별 표준편차를 구하는 함수
- VARIANCE(속성명) : 그룹별 분산을 구하는 함수
- ROLLUP(속성명) : 인수로 주어진 속성을 대상으로 그룹별 소계를 구하는 함수 속성의 개수가 n개이면 n+1 레벨까지, 하위 레벨에서 상위 레벨순으로 데이터가 집계됨
- CUBE(속성명) : ROLLUP과 유사한 형태지만 CUBE는 인수로 주어진 속성을 대상으로 모든 조합의 그룹별 소계를 구함
- GROUP BY 절에 지정한 속성을 기준으로 자료를 그룹화하여 검색한다
- 예) <상여금> 테이블에서 '부서'별 '상여금'의 평균을 구하시오
SELECT 부서, AVG(상여금) AS 평균 FROM 상여금 GROUP BY 부서;
- 예) <상여금>테이블에서 부서별 튜플 수를 검색하시오
SELECT 부서, COUNT(*) AS 사원수 FROM 상여금 GROUP BY 부서;
- 예) <상여금>테이블에서 '상여금'이 100이상인 사원이 2명 이상인 '부서'의 튜플 수를 구하시오
SELECT 부서 COUNT(*) AS 사원수 FROM 상여금 WHERE 상여금 >= 100 GROUP BY 부서 HAING COUNT(*) >= 2;
- 예) <상여금> 테이블의 '부서, '상여내역' 그리고 '상여금' 에 대해 부서별 상여내역별 소계와 전체 합계를 검색하시오 (단, 속성명은 '상여금합계'로 하고, ROLLUP함수를 사용할 것)
SELECT 부서, 상여내역, SUM(상여금) AS 상여금 합계 FROM 상여금 GROUP BY ROLLUP(부서, 상여내역);
- 예) <상여금>테이블의 '부서','상여내역', 그리고'상여금'에 대해 부서별 상여내역별 소계와 전체 합계를 검색하시오 (단, 속성명은 '상여금합계'로 하고 CUBE힘수를 사용할 것)
SELECT 부서, 상여내역, SUM(상여금) AS 상여금 합계 FROM 상여금 GROUP BY CUBE(부서, 상여내역);
2개 이상의 테이블의 데이터를 하나로 통합함
SELECT 속성명1, 속성명2 FROM 테이블명 UNION | UNION ALL | INTERSECT | EXECPT SELECT 속성명1, 속성명2 FROM 테이블명 [ORDER BY 속성명[ASC | DESC];
- 두 개의 SELECT 문에 기술한 속성들은 개수와 데이터 유형이 서로 동일해야 한다.
- UNION : 두 SELECT 문의 조회 결과를 통합하여 모두 출력함 중복돤 행은 한 번만 출력함 (합집합)
- UNION ALL : 두 SELECT 문의 조회 결과를 통합하여 모두 출력함 중복된 행도 그대로 출력함 (합집합)
- INTERSECT : 두 SELECT문의 조회 결과중 공통된 행만 출력 (교집합)
- EXCEPT : 첫 번째 SELECT 문의 조회 결과에서 두 번째 SELECT 문의 조회 결과를 제외한 행을 출력함 (차집합)
- 예) <사원>테이블과 <직원> 테이블을 통합하는 질의문을 작성하시오(단. 같은 레코드가 중복되어 나오지 않게 하시오)
SELECT * FROM 사원 UNION SELECT* FROM 직원;
- 예) <사원>테이블과<직원> 테이블에 공통으로 존재하는 레코드만 통합하는 질의문을 작성하시오
SELECT * FROM 사원 INTERSECT SELECT * FROM 직원;