논리 처리 순서

ORDER BY와 LIMIT은 결과를 만든 뒤 사용자에게 보내기 직전에 적용됩니다.

실제 물리 실행 계획은 최적화될 수 있지만, SQL을 이해할 때는 이 논리 순서가 별칭, DISTINCT, 정렬, 제한 규칙을 설명해 줍니다.

1

FROM

대상 테이블과 조인으로 출발 집합을 만듭니다.

2

WHERE

개별 행 조건으로 필요한 행만 남깁니다.

3

GROUP BY

남은 행을 집계 기준으로 묶습니다.

4

HAVING

그룹 결과를 조건으로 다시 거릅니다.

5

SELECT

출력 컬럼, 계산식, 별칭을 확정합니다.

6

DISTINCT

필요하면 출력값 조합의 중복을 제거합니다.

7

ORDER BY

최종 출력 후보를 원하는 순서로 정렬합니다.

8

LIMIT / FETCH

정렬된 결과에서 필요한 개수만 반환합니다.

별칭

ORDER BY는 SELECT 이후라 별칭을 사용할 수 있습니다.

DISTINCT

중복 제거 후 정렬하므로 ORDER BY 컬럼 제약이 생길 수 있습니다.

LIMIT

정렬 뒤 제한해야 TOP-N의 의미가 명확합니다.