PostgreSQL조회와 필터링

DISTINCT, LIMIT, OFFSET, 별칭

중복 제거, 결과 수 제한, 건너뛰기, 열 이름 바꾸기처럼 조회 결과를 다듬는 PostgreSQL 기본 문법을 함께 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

text
SELECT DISTINCT category AS kind
FROM products
ORDER BY kind
LIMIT 10
OFFSET 20;

설명

  • DISTINCT는 같은 값이 반복될 때 중복을 제거해 한 번만 보여 줍니다.
  • AS는 결과 열 이름에 별칭을 붙여, 원래 열 이름보다 읽기 쉬운 출력 형식을 만들 때 자주 씁니다.
  • LIMIT는 가져올 행 수의 상한을 정하고, OFFSET은 앞부분 몇 행을 건너뛸지 지정합니다.
  • 이 조합은 목록 화면, 페이지네이션, 요약 목록처럼 "많은 결과 중 일부만 보기"에 자주 쓰입니다.
  • 다만 LIMITOFFSET만 쓰고 정렬 기준이 없으면, 매 실행마다 결과 순서가 달라질 수 있으므로 ORDER BY를 함께 적는 편이 안전합니다.

짧은 예제

text
SELECT id, title AS post_title
FROM posts
WHERE published = true
ORDER BY created_at DESC
LIMIT 5
OFFSET 10;

빠른 정리

문법역할
DISTINCT중복 행 제거
AS name결과 열 이름 바꾸기
LIMIT n최대 n행만 가져오기
OFFSET n앞의 n행 건너뛰기

주의할 점

OFFSET 기반 페이지네이션은 페이지가 깊어질수록 느려질 수 있습니다. 데이터가 아주 많다면 created_at < 마지막값 같은 조건 기반 페이지네이션도 함께 고려하는 편이 좋습니다.

참고 링크

2 sources