[MSSQL] GROUP BY절 / HAVING절 / 집계함수 설명 및 사용법

이번 포스팅에서는 GROUP BY절, 그리고 HAVING 절에 대해 알아볼게요.

GROUP BY와 HAVING은 세트로 알아둬요~!

 

 

GROUP BY절?

GROUP BY는 말 그대로 테이블에서 특정 구조로 그룹을 지어주는 역할을 하는 구문인데요. :)

테이블 SELECT시 조회 결과를 그룹으로 묶어 그 결과를 나타냅니다.

 

GROUP BY는 특정 그룹별로 집계함수를 사용하고자 할 때 꼭 필요해요.

GROUP BY 문법 및 활용법은 아래를 참고해주세요!!

 

 

GROUP BY

SELECT 컬럼명

FROM 테이블
GROUP BY 컬럼명

 

GROUP BY 사용법

수주 테이블(SA_SO)에 수주번호(NO_SO)로 그룹을 지어 조회

SELECT NO_SO

FROM SA_SO

GROUP BY NO_SO

 

매출 테이블(SA_IVL)에 매출번호(NO_IV)별 평균 마감금액(AM_CLS), 최대 마감금액, 최저 마감금액, 합계 마감금액 조회

SELECT NO_IV, AVG(AM_CLS) AS평균마감금액, MAX(AM_CLS) AS 최대마감금액, MIN(AM_CLS) AS 최소마감금액, SUM(AM_CLS) AS 합계마감금액

FROM SA_IVL

GROUP BY NO_IV


그렇다면, 이번엔 HAVING은 과연 무엇인지 한번 알아볼까요?!

HAVING은 GROUP BY 절에 조건문을 HAVING으로 줄거에요.

 

HAVING절?

GROUP BY 절에는 조건문을 HAVING으로 나타내요.

 

 

사원 테이블(MA_EMP)에 나이(AGE)가 27살 이상인 사람으로 그룹을 지어 조회

SELECT AGE

FROM MA_EMP

GROUP BY AGE HAVING AGE >= 27

 

수주 테이블에 거래처(CD_PARTNER)별 동일한 수주번호가 있는지 조회 (단, 동일한 수주번호가 없는 데이터만 조회)

SELECT CD_PARTNER, COUNT(NO_SO) AS 수주 중복 체크

FROM SA_SO

GROUP BY CD_PARTNER HAVING COUNT(NO_SO) <= 1

 

 

물론 제가 사용한 방법 외에 더 다양한 활용법도 있을 거에요. :)

개념을 알아두고 다양한 함수 및 쿼리에 활용해보면 더 좋을 거에요~!

 

댓글

Designed by JB FACTORY