FROM
읽을 테이블과 조인 대상을 정합니다.
실행 순서를 시간축처럼 보면 이유가 단순합니다. 먼저 행을 고르고 묶은 뒤, 그 결과 집합 위에 순번과 누적값이 붙습니다.
읽을 테이블과 조인 대상을 정합니다.
필요한 행만 먼저 남깁니다.
행을 그룹으로 묶습니다.
그룹 단위로 다시 거릅니다.
여기서 ROW_NUMBER(), 순위, 누적합 같은 새 열이 만들어집니다.
중복 행을 제거합니다.
최종 출력 순서를 정합니다.
반환할 범위를 마지막에 자릅니다.
rn은 아직 존재하지 않습니다.
WHERE rn <= 3이 실행될 때는 순번을 계산하는 단계가 오지 않았습니다. 그래서 윈도우 함수 결과를 직접 조건식에 넣을 수 없습니다.