SQL 기초

오늘의 쿼리 03 | ORDER BY로 조회 결과 정렬하기

Sallagudia 2026. 10. 26. 08:00

SELECT가 열을 고르고 WHERE가 행을 거른다면, ORDER BY는 남은 결과의 순서를 정합니다. 가격이 낮은 상품부터 보여주는 화면을 예로 들어볼게요.

예제 데이터

아래 네 상품을 사용합니다. 오늘의 예제는 PostgreSQL 기준이며, 임시 테이블을 만들지 않아도 실행할 수 있도록 VALUES를 사용했습니다.

product_id product_name price
1 노트 3000
2 펜 1000
3 지우개 1000
4 가방 20000

오늘의 쿼리

WITH products (product_id, product_name, price) AS (
    VALUES
        (1, '노트', 3000),
        (2, '펜', 1000),
        (3, '지우개', 1000),
        (4, '가방', 20000)
)
SELECT product_id, product_name, price
FROM products
ORDER BY price ASC, product_id ASC;

price ASC는 가격을 작은 값부터 정렬합니다. product_id ASC는 가격이 같은 상품끼리 번호순으로 정렬합니다. 큰 값부터 보고 싶다면 price ASC를 price DESC로 바꿔보세요.

예상 결과

product_id product_name price
2 펜 1000
3 지우개 1000
1 노트 3000
4 가방 20000

실무에서 주의할 점

같은 가격의 행이 여럿이라면 가격만으로는 그 행들의 순서가 고정되지 않습니다. 목록이나 페이지네이션처럼 결과 순서가 중요할 때는 위 예제처럼 고유한 product_id까지 정렬 기준에 넣으세요. 또한 ORDER BY가 없으면 조회 결과의 순서를 보장할 수 없습니다.

내일은 정렬된 결과에서 필요한 개수만 가져오는 방법을 살펴보겠습니다.

반응형