Tech

Diary

Lecture

About Me

개발중

SQL group

JeongSeulho

2025년 01월 08일

준비중...
클립보드로 복사

aggregate function

  • 주로 데이터를 요약하는 데 사용
  • NULL을 제외한 값을 계산
  • 대표적인 집계 함수로는 COUNT, SUM, AVG, MAX, MIN 등이 있다.

COUNT

copy
SELECT COUNT(*)
FROM employees;
  • *은 모든 행을 세라는 의미
  • COUNT(column_name)은 특정 컬럼의 NULL을 제외한 값의 개수를 세라는 의미

group by

  • GROUP BY는 특정 컬럼을 기준으로 그룹을 만들어 집계 함수를 적용하는 데 사용
  • 각 프로젝트에 참여한 임직원 수와 최대 연봉, 최소 연봉, 평균 연봉 조회 시
copy
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 attributeNULL이 있으면 NULL끼리 묶는다.

Image

having

  • HAVINGGROUP BY와 함께 사용되며, 그룹에 대한 조건을 지정하는 데 사용
  • 그룹핑으로 만들어진 테이블에 대하여 필터링하는 것
  • 위 예제에서 참여한 임직원 수가 7명 이상인 프로젝트만 조회하고 싶을 때
copy
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 문의 실행 순서

  1. FROM(JOIN) table_name
  2. WHERE condition
  3. GROUP BY grouping_attribute
  4. HAVING condition
  5. ORDER BY column_name
  6. SELECT column_name
  • 단 개념적인 순서이며 실제 실행 순서는 RDBMS에 따라 다르다.