GROUP BY 절
- 특정컬럼이나 값을 기준으로 해당 레코드를 묶어서 자료를 관리할 때 사용
- 보통은 특정 컬럼을 기준으로 집계를 구하는데 많이 사용
- 보통은 그룹함수와 함게 사용하면 효과적으로 사용이 가능
[예제 테이블]
-- 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 테이블에서 카테고리 별로 상품의 갯수를 화면에 보여주세요.
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 |