-GROUP BY 절
기본형식 :
SELECT 컬럼명,별칭,*
FROM 테이블명
WHERE 조건(연산자)
GROUP BY 컬럼명
=예제=
부서별 최고 금액과 최저 금액을 출력
select deptno,max(sal),min(sal)
from emp
group by detpno;
==문제 접근==
쉽게 설명하면 group by를 사용해서 deptno를 그룹화 시킨 다음 , deptno(부서별)에 대한 최소 급여랑 최대 급여를 출력하는 거임.
그냥 쉽게, 월급에 최대를 알고 싶은데 어떤 그룹에 최대를 알고 싶냐고 하면
GROUP BY를 사용하면 됨.
==예제==
부서별로 급여가 1000이상인 사람들의 평균을 구하여라
select avg(sal),deptno
from emp
where sal>=1000
group by deptno;
==예제==
부서별 사원수와 커미션을 받는 사원수를 출력
select deptno,count(*),sum(case when nvl(comm,0)>0 then 1 else 0 end)
from emp
group by deptno;
==문제 접근==
NVL은 ()안에 내가 지정한 값이 null값이면 원하는 값으로 변환해주는 것임
NVL(comm,0) comm에 NULL값은 다 0으로 바꾸라는 뜻이고
sum과 case를 사용해서 nvl(comm,0)을 한 후 이 값이 0보다 크면 1을 출력하고, 아니면 0으로 출력한 후 다 더한다
그렇게 하면 부서별로 comm을 받는 사람의 수와 , 부서별 인원을 출력 가능하다.
'데이터베이스' 카테고리의 다른 글
Database - JOIN 간단한 개념 (0) | 2022.07.13 |
---|---|
Database - HAVING(개념) + 예제 (0) | 2022.07.08 |
Database - 그룹 함수 (실습) (0) | 2022.07.08 |
Database - 그룹함수 개념 + 예제 (0) | 2022.07.08 |
Database - NVL함수와 DECODE (0) | 2022.07.07 |