재미있게 코딩합시다

5. 데이터베이스 - 데이터 그룹 사용하기 본문

IT /데이터베이스

5. 데이터베이스 - 데이터 그룹 사용하기

감민셔 2018. 12. 21. 17:11

#데이터 그룹 사용하기


#특정 컬럼을 기준으로 그룹별로 나누는 방법이 있다.




1. group by 절


#select deptno,avg(sal) from employee group by deptno;

=>그룹화를 시킨 식

deptno가 가진 값을 평균을 구한식

deptno 은 1,2,2312 을 가지고잇므로

1 의 평균

3 의 평균

2312 의 평균

을 구한식이 된다.



※연산후 그룹핑을 하는것이 약속


ex)where절 연산후 그룹핑을 햇는대 다시 연산 불가능


그룹핑을 한걸 따로 출력해달라고 식을 쓸려면 having이라는 것을 추가해야 합니다.


#having

=>레코드를 그룹화 하기 전에 조건에 따라 걸러내는것 

그룹화해서 그룹연산까지 한후의 결과를 필터링 하고싶을때 쓴다.


select deptno sum(sal) from employee group by deptno where sum(sal) > 10000;

옳지않고


select deptno sum(sal) from employee group by deptno having sum(sal) > 10000;

이 옳은 문법!!!




약간의 예제?

============

문제)

직업이 MANAGER가 아닌 친구들에 대해 직업별로 그루핑 해서 직업과 그룹별 레코드 갯수, 그룹별 sal총합을 구하고 

그중에서 sal 총합이 5000보다 작으면 없애버리고


sum(sal) 기준으로 오름차순으로 정렬

=>select job,count(*),sum(sal) from employee where job != 'manager' group by job desc having sum(sal) >= 5000;

=>select job,count(*),sum(sal) from employee where job not like '%manager%' group by job desc having sum(sal) >= 5000;


============




'IT > 데이터베이스' 카테고리의 다른 글

6. 데이터베이스 -조인  (0) 2018.12.21
4. 데이터베이스 - 쿼리  (0) 2018.12.21
3. 데이터베이스 -함수  (0) 2018.12.21
2. 데이터베이스 - 연산  (1) 2018.12.21
1. 데이터 베이스  (0) 2018.12.21
Comments