database (GROUP BY / HAVING /LIMIT)

김현희·2026년 4월 21일

1. GROUP BY

SELECT * FROM table_A GROUP BY group_column;

  • 데이터베이스에서 특정 칼럼을 기준으로 데이터를 그룹화할 때 사용
  • 마치 과일 바구니에서 사과는 사과끼리, 포도는 포도끼리 따로 모으는 과정과 비슷
  • 보통 데이터를 그룹으로 묶은 뒤, 그 그룹별로 합계, 평균, 개수 등을 계산하는 집계 함수(Aggregate Function)와 함께 자주 사용
  • GROUP BY는 SELECT 안에 있는 비집계 Column과 일치해야 함

GROUP BY와 짝꿍처럼 쓰이는 함수들

함수설명
COUNT()행의 개수를 계산
SUM()데이터 합계를 계산
AVG()데이터의 평균을 계산
MAX() / MIN()최대값 또는 최소값

2. HAVING

SELECT * FROM table_A
GROUP BY group_column
HAVING 조건;

  • HAVING은 GROUP BY와 떼어놓을 수 없으며 "그룹화된 결과에 필터를 거는 조건절" 즉, 그룹화된 결과 중에서 또 걸러주는 역할을 함
  • GROUP BY 이후 사용 가능 => 그 외 것들과 조합해서 사용 불가
  • HAVING은 필수로 쓸 필요 없음, 조건을 걸고 분류하고 싶을 때만 사용하면 됨.

⭐️ WHERE 절은 데이터베이스가 그룹화를 하기 전에 개별 행(row)을 검사

구분WHEREHAVING
적용시점데이터를 그룹화하기 전데이터를 그룹화한 후
대상개별 행(row)그룹화된 결과(Group)
집계함수사용불가사용가능



3. LIMIT

SELECT * FROM table_A
LIMIT 개수; 또는 LIMIT offset, 개수;

  • 쿼리 결과로 출력되는 행(Row)의 개수를 제한할 때 사용하는 키워드
  • 방대한 데이터 중에서 보고 싶은 만큼만 끊어서 가져올 때 아주 유용
  • 긴 테이블을 조회할 때 필수 --> 실무에서 대형테이블에 SELECT *는 위험
  • 조회 속도를 빠르게 할 때 사용: pagination에서 사용


LIMIT 3; 은 정보 3개만 가져오라는 말

  • LIMIT 10,3; —> 앞에 10개는 버리고 3개의 정보를 가져온라는 의미

4. SQL 실행순서

profile
AI 헬스케어 공부하는 간호사

0개의 댓글