GROUP BY 


테이블 내의 데이터를 그룹별로 구분하여 통계적인 결과를 내기위해 사용합니다.



먼저 GROUP BY형식부터 알아보겠습니다.



SELECT 컬럼명1,SUM(컬럼명2) FROM 테이블명 GROUP BY 컬럼명1;




여기서 컬럼명1 에는 기준이되는 컬럼명을 넣어주셔야합니다. 그리고 컬럼명2에는 계산 가능한 값을 넣어주셔야 합니다.

도서관을 예를 들면 도서관 회원 번호가 있을것 입니다. 도서관 회원이 한번에 책을 2개 빌릴 수도 있고, 3개 빌릴수도 있고 1개 빌릴수도 있습니다.

그럴 때 회원 번호가 컬럼명1이고 빌린 갯수가 컬럼명 2라고 생각하시면됩니다. 


먼저 테이블을 만들고 데이터까지 넣어보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
create table buy(
id varchar(20),
num varchar(20));
 
insert into buy VALUES('aa',1);
insert into buy VALUES('aa',1);
insert into buy VALUES('bb',6);
insert into buy VALUES('cc',5);
insert into buy VALUES('dd',3);
insert into buy VALUES('aa',8);
insert into buy VALUES('cc',22);
insert into buy VALUES('dd',9);
cs




그리고 select를 해보시면 밑의 결과를 볼 수 있습니다.




보이시는 것과 같이 겹치는 것들이 여러개 있습니다.

aa가 빌린 책의 총합은 num인데 num을 다더하면 10권입니다. 마찬가지로 bb는 6권, cc는 12권, dd는 27권 입니다.

이런것을 좀 더 간편하게 보기 위해 GROUP BY를 사용합니다.


1
select id,sum(num) from buy group by id; 
cs


보이시는 것과 같이 num 안에 있는 데이터들이 ID를 기준으로 다 더해져서 결과 값이 나온 것을 볼 수 있습니다.

aa회원이 몇권을 빌렷는지 bb회원이 몇권을 빌렷는지 알기쉽게 정리해줍니다.

'DataBase' 카테고리의 다른 글

[Oracle] INNER JOIN  (0) 2018.11.12
[Oracle]집계함수  (0) 2018.11.12
[Oracle]테이블 내용을 조회하는 SELECT  (0) 2018.11.11
[oracle]데이터 사전  (2) 2018.11.07
[oracle]테이블의 모든 데이터를 제거하는 TRUNCATE TABLE  (0) 2018.11.07

+ Recent posts