SQL group
JeongSeulho
2025년 01월 08일
준비중...
클립보드로 복사
aggregate function
- 주로 데이터를 요약하는 데 사용
NULL을 제외한 값을 계산- 대표적인 집계 함수로는
COUNT,SUM,AVG,MAX,MIN등이 있다.
COUNT
SELECT COUNT(*)
FROM employees;*은 모든 행을 세라는 의미COUNT(column_name)은 특정 컬럼의NULL을 제외한 값의 개수를 세라는 의미
group by
GROUP BY는 특정 컬럼을 기준으로 그룹을 만들어 집계 함수를 적용하는 데 사용- 각 프로젝트에 참여한 임직원 수와 최대 연봉, 최소 연봉, 평균 연봉 조회 시
SELECT W.proj_id, COUNT(*), MAX(E.salary), MIN(E.salary), AVG(E.salary)
FROM works_on W
JOIN employees E ON W.empl_id = E.id
GROUP BY W.proj_id;- 그룹을 나누는 기준이 되는 컬럼을
grouping attribute라고 한다. grouping attribute에NULL이 있으면NULL끼리 묶는다.
having
HAVING은GROUP BY와 함께 사용되며, 그룹에 대한 조건을 지정하는 데 사용- 그룹핑으로 만들어진 테이블에 대하여 필터링하는 것
- 위 예제에서 참여한 임직원 수가 7명 이상인 프로젝트만 조회하고 싶을 때
SELECT W.proj_id, COUNT(*), MAX(E.salary), MIN(E.salary), AVG(E.salary)
FROM works_on W
JOIN employees E ON W.empl_id = E.id
GROUP BY W.proj_id
HAVING COUNT(*) > 7;SELECT 문의 실행 순서
FROM(JOIN)table_nameWHEREconditionGROUP BYgrouping_attributeHAVINGconditionORDER BYcolumn_nameSELECTcolumn_name
- 단 개념적인 순서이며 실제 실행 순서는
RDBMS에 따라 다르다.