크리스의 개발일기

[SQL]GROUP BY절, HAVING절 본문

Database/SQL

[SQL]GROUP BY절, HAVING절

ChrisJang 2020. 11. 9. 16:53

의문의 시작?

- MySQL에서 유형별로 갯수를 가져오고 싶을때 단순히 COUNT 함수로 데이터를 조회하면 전체 갯수만을 가져옵니다.

이때 유형별로 조회된 갯수를 알고 싶을 때는 컬럼에 데이터를 그룹화 할 수 있는 GROUP BY를 사용해야합니다.

 

특정 컬럼을 그룹화 하는 GROUP BY 

특정 컬럼을 그룹화한 결과에 조건을 거는 HAVING

(+추가내용 WHERE과 HAVING 사용에 있어 혼돈이 많은데 WHERE은 그룹화 하기 전, HAVING은 그룹화 후에 조건입니다.)

 

GROUP BY 절이란?

: 특정 속성을 기준으로 그룹화 하여 검색할 때 그룹화 할 속성을 지정한다.

 

SELECT [DISTINCT] 컬럼, 그룹 함수(컬럼)

FROM 테이블명

[WHERE 조건]

[GROUP BY Group대상]

[ORDER BY 정렬대상 [ASC/DESC]]

 

SELECT 절에 그룹 함수와 컬럼명이 같이 기술된 경우 해당 컬럼은 반드시 GROUP BY절에 그룹화 돼야 한다.


HAVING 절이란?

- HAVING 절은 WHERE절과 비슷하다.

- 일반 조건에는 WHERE 절을 기술하고 그룹 함수를 포함한 조건에는 HAVING 절을 기술한다.

 

SELECT [DISTINCT] 컬럼, 그룹 함수(컬럼)

FROM 테이블명

[WHERE 조건]

[GROUP BY Group대상]

[HAVING 그룹 함수 포함 조건]

[ORDER BY 정렬대상 [ASC/DESC]]

 

  •  
  • HAVING 절은 GROUP BY 절 뒤에 기술한다.

  • HAVING 절의 조건은 그룹 함수를 포함해야 한다.

 

 

 

 

출처:

extbrain.tistory.com/56

keep-cool.tistory.com/37

Comments