문법 · SQL · beginner

ORDER BY · LIMIT · DISTINCT

정렬·상위 N·중복 제거로 결과 집합을 다듬습니다.

배우기 · SQL 문법 · 12분 · 7/14 · SQL · 정렬

이 트랙 목차 (14)
  1. 1. SELECT · WHERE · ORDER · LIMIT
  2. 2. JOIN: INNER · LEFT와 없는 행 찾기
  3. 3. GROUP BY · 집계 · HAVING
  4. 4. 서브쿼리·IN·존재 여부
  5. 5. CASE · NULL · COALESCE
  6. 6. 윈도우 함수 맛보기: RANK · OVER
  7. 7. ORDER BY · LIMIT · DISTINCT
  8. 8. INSERT · UPDATE · DELETE 맛보기
  9. 9. 스칼라 함수 (UPPER · ROUND…)
  10. 10. 함수 응용 (INSTR · CAST · GROUP)
  11. 20. CASE · HAVING · LIKE
  12. 21. JOIN · NULLIF · DISTINCT
  13. 22. ROUND · LEFT JOIN · GROUP_CONCAT
  14. 23. UNION · INTERSECT · WITH

ORDER BY

SELECT name, score
FROM students
ORDER BY score DESC, name ASC;

여러 키를 쓰면 앞 키가 우선입니다. NULL 정렬 순서는 DB마다 다를 수 있으니, 연습에서는 NULL이 적은 데이터로 확인하세요.

LIMIT / OFFSET

SELECT * FROM t ORDER BY id LIMIT 10;
SELECT * FROM t ORDER BY id LIMIT 10 OFFSET 20;

상위 N개, 페이지네이션에 씁니다. OFFSET이 커지면 비용이 커질 수 있어, 실무에서는 키 기반 페이지를 쓰기도 합니다. 이 사이트 연습 규모에서는 LIMIT만으로 충분합니다.

DISTINCT

SELECT DISTINCT city FROM users;

행 전체(선택 컬럼 조합) 기준 중복을 제거합니다.
집계가 필요하면 GROUP BY가 맞는 경우가 많습니다.

함정

  1. ORDER BY 없이 LIMIT만 쓰면 어떤 N개인지 보장되지 않습니다.
  2. SELECT * + DISTINCT는 예상과 다른 열이 섞여 중복이 안 없어질 수 있습니다.
  3. 문자열 정렬은 콜레이션(대소문자·로케일)에 따라 달라집니다.

체크리스트

질문확인
정렬 키가 명시됐나?ORDER BY
상위만 필요한가?LIMIT
중복 제거인가, 집계인가?DISTINCT vs GROUP BY

연습

SQL 연습 문제에서 점수 상위 3명만 고르는 질의를 작성해 보세요.

한 줄

> 정렬을 명시한 뒤 LIMIT. 중복은 DISTINCT, 집계는 GROUP BY.

더 깊게

읽은 뒤 연습장에서 예제 코드를 한 번 타이핑해 보세요. 눈으로만 보면 하루 뒤 사라집니다.

관련 원리 카드와 문제 태그로 바로 이어서 풀면, 문법·패턴이 한 묶음으로 남습니다.

막히면 30분 규칙: 입력을 로그로 확인 → 기대/실제 한 줄 비교 → 그래도 안 되면 배우기 레슨으로 잠시 복귀.

관련 짧은 원리

관련 문제