GROUP BY
GROUP BY는 지정한 컬럼의 값이 같은 행들을 하나의 그룹으로 묶어 집계 함수와 함께 사용합니다. 그룹별로 집계하기
기본 문법
SELECT 그룹컬럼, 집계함수(컬럼)
FROM 테이블명
GROUP BY 그룹컬럼;예제
부서별 직원 수
부서 ID 기준으로 그룹을 만들고 COUNT()로 직원 수를 셉니다.
SELECT department_id, COUNT(*) AS 직원수 FROM employees GROUP BY department_id;부서별 평균 급여
AVG() 함수로 그룹별 평균을 구합니다.
SELECT department_id, AVG(salary) AS 평균급여 FROM employees GROUP BY department_id;카테고리별 상품 수와 평균가
여러 집계 함수를 동시에 사용할 수 있습니다.
SELECT category, COUNT(*) AS 수량, AVG(price) AS 평균가격 FROM products GROUP BY category;알아두면 좋은 것
- GROUP BY에 없는 컬럼은 SELECT에 집계 함수 없이 사용할 수 없습니다.
- COUNT(*): 전체 행 수, COUNT(컬럼): NULL 제외한 행 수
- HAVING으로 그룹 결과에 조건을 추가할 수 있습니다.
연습 문제
- 부서별 직원 수 · 중급 · GROUP BY, 집계함수
- 부서별 평균 급여 · 중급 · GROUP BY, 집계함수
- 직원 2명 이상 부서 · 중급 · HAVING, 집계함수