본문 바로가기
[개발] Practice/SQL Database

[SQL / Database] GROUP BY 로 그룹지어 통계내기

by Connecting-the-dots 2023. 5. 28.
728x90
반응형

💡GROUP BY 로 그룹지어 통계내기

💜 GROUP BY

🤍 GROUP BY 사용해보기

SELECT 컬럼명 FROM 테이블명 GROUP BY 컬럼명
  • "SELECT FROM " 뒤에 "GROUP BY 컬럼명" 을 붙이면 해당 컬럼에 있는 데이터를 카테고리화하여 그룹으로 보여준다. 
  • 동작방식은 DISTINCT 와 유사하다.
  • GROUP BY 문법을 통해 그룹을 만든다고 해서 딱히 쓸모가 없으므로, 일반적으로 통계관련 함수인 MIN(), MAX(), COUNT(), SUM(), AVG() 와 함께 카테고리마다 통계를 낼 때 사용한다.

🤍 GROUP BY 결과 필터링하기

SELECT 컬럼명 FROM 테이블명 GROUP BY 컬럼명 HAVING 조건식
  • GROUP BY 로 카테고리화하여 출력한 데이터의 행이 많은 경우 다시 필터링을 할 수 있는데, 이 때 사용하는 것이 HAVING 이다.
  • "HAVING 조건식" 과 같은 형태로 사용하며 이는 GROUP BY 뒤에만 붙일 수 있다.
  • 결과적으로, 쿼리는 SELECT / FROM / WHERE / GROUP BY / HAVING / ORDER BY 순으로 작성된다.

🤍 HAVING 과 WHERE 비교해보기

  • HAVING 과 WHERE 은 조건식을 사용하여 필터링을 한다는 점에서 유사하다.
  • 다만, HAVING 은 GROUP BY 의 결과를 필터링할 때 사용하므로 GROUP BY 뒤에서만 사용이 가능하다.
  • WHERE 은 테이블 전체 데이터를 출력 시 필터링할 때 사용하므로 SELECT FROM 뒤에서만 사용이 가능하다.
728x90
반응형