GROUP BY는 대개 AVG, SUM, MIN, MAX, COUNT 와 같은 집계함수와 같이 사용합니다.
그렇기 때문에 집계함수에 대해 먼저 알아 보겠습니다.
[집계함수]
INSERT INTO test_Table (NO, NAME, AGE) VALUES (1, 'HONG', 10)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (2, 'LEE', 11)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (3, 'KIM', 10)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (4, 'HONG', 27)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (5, 'LEE', 11)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (6, 'JANG', 10)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (7, 'HAN', 24)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (8, 'JANG', 19)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (9, 'WANG', 27)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (10, 'HAN', 31)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (11, 'WANG', 24)
-AVG
SELECT AVG(AGE) AS 평균나이 FROM test_Table;
결과:
평균나이
19
-SUM
SELECT SUM(AGE) AS 나이합계 FROM test_Table;
결과:
나이합계
204
-MIN
SELECT MIN(AGE) AS 최저나이 FROM test_Table;
결과:
최저나이
10
-MAX
SELECT MAX(AGE) AS 최고나이 FROM test_Table;
결과:
최고나이
31
-COUNT
SELECT COUNT(NO) AS 사람수 FROM test_Table;
결과:
사람수
11
[GROUP BY & HAVING]
이러한 집계함수과 많이 사용하는 GROUP BY절과 HAVING절에 대해 알아보겠습니다.
INSERT INTO test_Table (NO, NAME, AGE) VALUES (1, 'HONG', 15)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (2, 'LEE', 11)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (3, 'KIM', 10)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (4, 'KIL', 23)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (5, 'HONG', 19)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (6, 'LEE', 11)
INSERT INTO test_Table (NO, NAME, AGE) VALUES (7, 'KIL', 21)
- [GROUP BY]
- 문법
SELECT 컬럼명 FROM 테이블 GROUP BY 컬럼명
- 예제
- 이름으로 그룹지어 이름,평균나이 조회
SELECT NAME, AVG(AGE) AS 평균나이 FROM test_Table GROUP BY NAME
- 결과
NAME 평균나이
HONG 17
LEE 11
KIL 22
KIM 10
-[HAVING]
GROUP BY 에선 WHERE절 대신 HAVING을 사용합니다.
HAVING은 GROUP BY로 그룹화한 그룹에 대해서만 조건을 추가합니다.
-예제
-이름에 'K'가 들어간 사람들로 그룹지어 이름,최고나이 조회
SELECT NAME, MAX(AGE) AS 최고나이 FROM test_Table GROUP BY NAME HAVING NAME LIKE '%K%'
-결과
NAME 최고나이
KIL 23
KIM 10
반응형
'DB > MS-SQL' 카테고리의 다른 글
[MSSQL] 컬럼 데이터타입 추가, 수정, 삭제 (0) | 2020.09.21 |
---|---|
[MSSQL] 커서(Cursor) 사용법 (0) | 2020.06.03 |
[MSSQL] 반복문(WHILE) 사용법 (0) | 2020.05.24 |
[MSSQL] 문자열 치환하기(REPLACE, STUFF) (0) | 2020.05.12 |
[MSSQL] 문자열 자르기(SUBSTRING, LEFT, RIGHT) (0) | 2020.05.12 |