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_nameWHERE
conditionGROUP BY
grouping_attributeHAVING
conditionORDER BY
column_nameSELECT
column_name
- 단 개념적인 순서이며 실제 실행 순서는
RDBMS
에 따라 다르다.