[SQL 튜닝] WHERE 절에는 별칭(alias)를 사용할 수 없다.

SSuyn·2023년 7월 17일
0

튜닝

목록 보기
1/1

Select 절에 스칼라뷰를 사용할 경우 alias를 사용하여 column의 별명을 부여하곤 한다. 이 alias는 GROUP BY 절 이후부터 인식하기 때문에 WHERE 절에 alias를 사용할 경우 인식하지 못하여 오류가 발생한다.

SQL 구문 실행 순서 상 alias는 gorup by 절 이후부터 인식한다.

실행순서
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

1. FROM : 조회 테이블 확인

FROM 절에서는 테이블의 모든 데이터를 가져온다.

2. WHERE : 데이터 추출 조건 확인

FROM 절에서 읽어온 데이터 중에서 조건에 일치하는 데이터만 가져온다.

3. GROUP BY : 컬럼 그룹화

WHERE 조건에서 읽어온 데이터를 선택한 컬럼으로 그룹화하여 단일 값으로 축소한다.

4. HAVING : 그룹화 조건 확인

항상 GROUP BY 뒤에 위치하고 WHERE 조건절과 마친가지로 조건ㅇ르 줄 수 있다. 차이점은 WHERE 절은 기본적인 조건절로서 우선적으로 모든 필드를 조건에 둘 수 있지만, HAVING 절은 GROUP BY 된 이후 특정한 필드로 그룹화된 새로운 테이블에 조건을 준다.

5. SELECT : 데이터 추출

여러 조건들을 처리한 후 남은 데이터에서 어떤 열을 출력할지 선택한다.

6. ORDER BY : 데이터 순서 정렬

마지막으로 행의 순서 정렬한다.

profile
한량 DBA

0개의 댓글