본문 바로가기
Back/Database

GROPU BY

by 시월해 2021. 4. 7.

GROUP BY 절


- 특정컬럼이나 값을 기준으로 해당 레코드를 묶어서 자료를 관리할 때 사용
- 보통은 특정 컬럼을 기준으로 집계를 구하는데 많이 사용
- 보통은 그룹함수와 함게 사용하면 효과적으로 사용이 가능

 

[예제 테이블]

EMP 테이블

-- EMP 테이블에서 부서별로 각 부서의 인원을 확인하고 싶은 경우
SELECT DEPTNO, COUNT(*)
FROM EMP
GROUP BY DEPTNO
ORDER BY DEPTNO;

-- EMP 테이블에서 부서별로 급여의 합계를 화면에 보여주세요.
SELECT DEPTNO, SUM(SAL) "급여 합계"
FROM EMP
GROUP BY DEPTNO
ORDER BY SUM(SAL) DESC;

-- [문제] EMP 테이블에서 부서별로 그룹을 지어서 부서의 급여 합계와
-- 부서별 인원수, 부서별 평균 급여, 부서별 최대 급여, 부서별 최소 급여를 구하여 출력
-- 단, 급여합계를 기준으로 내림차순으로 정렬
SELECT SUM(SAL) "급여 합계", COUNT(EMPNO) "인원수",
       AVG(SAL) "평균 급여", MAX(SAL)"최대 급여", MIN(SAL) "최소 급여"
FROM EMP
GROUP BY DEPTNO
ORDER BY SUM(SAL) DESC;

 

 

HAVING 절


- GROUP BY 절 다음에 오는 조건절로 GROUP BY 정의 결과에 조건을 주어서 제안할 때 사용
- GROUP BY 절에는 WHERE (조건절)이 올 수 없다.

 

[예제테이블]

PRODUCTS 테이블

-- PRODUCTS 테이블에서 카테고리 별로 상품의 갯수를 화면에 보여주세요.
SELECT CATEGORY_FK, COUNT(*)
FROM PRODUCTS
GROUP BY CATEGORY_FK
HAVING COUNT(*) >= 2
ORDER BY CATEGORY_FK;

 

 

'Back > Database' 카테고리의 다른 글

제약 조건(RESTRICTION)  (0) 2021.04.07
VIEW(뷰)  (0) 2021.04.07
서브 쿼리(SUB QUERY)  (0) 2021.04.07
Oracle(SQL) 기본 제공 함수  (0) 2021.04.07
SQL JOIN  (0) 2021.03.31