[MSSQL] GROUP BY절 / HAVING절 / 집계함수 설명 및 사용법
- DB/MS SQL
- 2021. 3. 17.
이번 포스팅에서는 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
물론 제가 사용한 방법 외에 더 다양한 활용법도 있을 거에요. :)
개념을 알아두고 다양한 함수 및 쿼리에 활용해보면 더 좋을 거에요~!
'DB > MS SQL' 카테고리의 다른 글
[MSSQL] #1 IN, NOT IN 구문 설명 및 사용법(오류 케이스) (1) | 2021.03.25 |
---|---|
[MSSQL] 데이터 형태 변환 CONVERT / CAST 함수 설명 및 사용법 (0) | 2021.03.21 |
[MSSQL] 공백제거 LTRIM/RTRIM 설명 및 사용법 (0) | 2021.03.10 |
[MSSQL] ISNULL문 설명 및 사용법(NULL값 체크) (0) | 2021.03.04 |
[MSSQL] SUBSTRING구문 설명 및 사용법 (0) | 2021.03.04 |