Select 절에 스칼라뷰를 사용할 경우 alias를 사용하여 column의 별명을 부여하곤 한다. 이 alias는 GROUP BY
절 이후부터 인식하기 때문에 WHERE 절에 alias를 사용할 경우 인식하지 못하여 오류가 발생한다.
SQL 구문 실행 순서 상 alias는 gorup by 절 이후부터 인식한다.
실행순서
FROM
-WHERE
-GROUP BY
-HAVING
-SELECT
-ORDER BY
FROM 절에서는 테이블의 모든 데이터를 가져온다.
FROM 절에서 읽어온 데이터 중에서 조건에 일치하는 데이터만 가져온다.
WHERE 조건에서 읽어온 데이터를 선택한 컬럼으로 그룹화하여 단일 값으로 축소한다.
항상 GROUP BY 뒤에 위치하고 WHERE 조건절과 마친가지로 조건ㅇ르 줄 수 있다. 차이점은 WHERE 절은 기본적인 조건절로서 우선적으로 모든 필드를 조건에 둘 수 있지만, HAVING 절은 GROUP BY 된 이후 특정한 필드로 그룹화된 새로운 테이블에 조건을 준다.
여러 조건들을 처리한 후 남은 데이터에서 어떤 열을 출력할지 선택한다.
마지막으로 행의 순서 정렬한다.