MySQL

Group By 와 having 절

yoooon1212 2024. 6. 10. 16:21

GROUP BY 절이란?

 

GROUP BY 절은 SQL에서 특정 열의 값에 따라 행 집합을 요약된 그룹으로 나누는 데 사용됩니다. 이 절은 주로 집계 함수(예: SUM, AVG, MAX, MIN, COUNT 등)와 함께 사용되어, 각 그룹에 대한 요약 정보를 제공합니다.

  • GROUP BY 절은 데이터들을 원하는 그룹으로 나눌 수 있다
  • 나누고자 하는 그룹의 컬럼명을 SELECT절과 GROUP BY절 뒤에 추가하면 된다.
  • 집계 함수와 함께 사용되는 상수는 GROUP BY 절에 추가하지 않아도 된다. (많이 실수 하는 부분)

 

HAVING 절이란?

HAVING 절은 GROUP BY 절과 함께 사용되며, 특정 조건을 만족하는 그룹만을 필터링하는 데 사용됩니다. WHERE 절이 개별 행에 대해 조건을 적용하는 반면, HAVING 절은 그룹화된 결과에 대한 조건을 적용합니다. 집계 함수의 결과를 기반으로 조건을 적용할 수 있기 때문에 GROUP BY 절 이후에 사용됩니다.

 

 

예제 문제 1

고등학교에서 다양한 클래스의 학생들이 시험을 치렀다고 가정해 봅시다. 각 클래스별 평균 점수가 70점 이상인 클래스만을 찾고 싶을 때 사용할 수 있는 SQL 쿼리를 작성해 보겠습니다.

 

 

 

DB  생성 및 table 생성

 

 

코드 예시

 

 

예제 문제 2

 

DB  생성 및 table 생성