오라클 SQL/5장.SELECT 구절

2. 그룹별 집계를 위한 GROUP BY

newlec 2019. 10. 12. 18:56
반응형

GROUP BY 절은 집계를 할 때 작은 그룹으로 나누어서 집계하도록 하는 구절이다. 예를 들어서 다음 문장처럼 게시글의 개수를 집계하는 문장이 있다고 하자.

 

[코드]

SELECT COUNT(ID) FROM NOTICE;

[결과]

위의 결과는 레코드의 전체 개수를 알려주는 단일 값을 반환한다.

 

만약에 작성자 별로 묶어서 개수를 집계하고 싶다면 그 때 GROUP BY 절을 사용할 수 있다.

 

[코드]

SELECT COUNT(ID) FROM NOTICE GROUP BY WRITER_ID;

[결과]

이렇게 작성자별로 묶어서 개수를 집계하게 되면 단일 값이 아니라 각 작성자별 게시글 개수가 나오기 때문에 목록이 출력된다.

 

그 목록에서 집계된 내용이 각각 어떤 작성자의 게시글 수인지를 알고 싶다면 SELECT 절에 GROUP BY 절에 사용된 기준 필드를 같이 출력할 수 있다.

 

[코드]

SELECT WRITER_ID, COUNT(ID) FROM NOTICE GROUP BY WRITER_ID;

[결과]

그리고 마지막으로 위의 결과에서 컬럼명에 집계함수가 사용되는 것은 그 결과를 프로그래밍에서 사용할 때는 불편하므로 별칭을 COUNT로 해서 쿼리를 만들면 작성자별로 묶은 집계값 완전하게 만들어진다.

 

[코드]

SELECT WRITER_ID, COUNT(ID) COUNT FROM NOTICE GROUP BY WRITER_ID;

[결과]

 

 

 

 

 

 

 

 

 

 

 

반응형