[DBMS] 데이터의 그룹화 및 필터링

형이·2023년 7월 19일
0

DBMS

목록 보기
10/17
post-thumbnail

📝 그룹화, 필터링

🖥️ 1. 데이터의 그룹화

1-1. 그룹화하기

📌 열 이름으로 그룹화

SELECT 		그룹화할 열 이름1, 그룹화할 열 이름2, 집계함수
FROM		테이블명
WHERE		조건절
GROUP BY	열 이름1, 열 이름2;

 ✔️ 집계 함수를 제외한 SELECT문의 모든 열은 GROUP BY절에 있어야 함

📌 열 위치로 그룹화

SELECT 		그룹화할 열 이름1, 그룹화할 열 이름2, 집계함수
FROM		테이블명
WHERE		조건절
GROUP BY	1, 2;

 ✔️ ORDER BY절이 열 위치를 지정해서 정렬한 것과 같이 GROUP BY절도 열 위치를 지정해서 그룹화 할 수 있음

1-2. GROUP BY 특징

 ✔️ GROUP BY절은 WHERE 조건절 뒤에 위치하고, ORDER BY절 앞에 위치

 ✔️ 그룹화될 열에 NULL값을 포함할 경우 NULL 값도 그룹화됨 (NULL값을 여러개 포함하고 있을 경우 하나의 NULL값으로 그룹화)


🖥️ 2. 그룹화된 데이터의 필터링

2-1. 그룹화 데이터 필터링

✔️ 특정한 테이블에서 특정한 조건을 만족하는 데이터를 추출한 후 특정한 조건을 만족한 그룹화된 특정 열 및 집계 함수를 나타내라는 뜻

SELECT 		그룹화할 열 이름1, 집계함수
FROM		테이블명
WHERE		조건절
GROUP BY	열 이름1
HAVING		집계 함수 조건;

✔️ HAVING은 WHERE 조건절과 마찬가지로 조건을 주는 역할을 함

✔️ WHERE 조건절과의 차이점 : HAVING은 그룹화된 변수에 대해 조건을 준다

2-2. HAVING 특징

✔️ 그룹화 필터링 후 데이터를 정렬할 때 ORDER BY절 사용 가능

	** 문장 순서

 SELECT 	열 이름
 FROM 		테이블명
 WHERE 		조건절(개별 행에 대한 필터링)
 GROUP BY 	열 이름
 HAVING 	조건(그룹화된 변수에 대한 필터링)
 ORDER BY 	열 이름;

✔️ WHERE 조건절의 조건은 데이터가 그룹화되기 전에 필터링하고, HAVING 절의 조건은 데이터가 그룹화된 후에 필터링

✔️ WHERE 조건절에 의해 제외된 행은 그룹화할 때도 제외되기 때문에 HAVING절의 고려대상이 아님

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

글이 많은 도움이 되었습니다, 감사합니다.

답글 달기

관련 채용 정보