본문 바로가기
DATABASE

(MySQL 기준) 동작 순서

by nyang2 2023. 12. 4.

동작순서에 대해 이야기 하기 전에 ! 왜 동작 순서가 중요한가?

 

1. 상품별 재구매율과 주문 건수 조회

 

2. O_cnt 기준 주문건수가 10 초과인 결과만 조회 (틀린답)

 

에러의 이유 :

우선순위 (동작의 순서) 때문이다.

where 조건절이 group by 보다 먼저 실행되기 때문에 문제가 발생한 것이다.


MySQL 기준 동작 순서

from ➜ where ➜ select ➜ group by, 집계함수 ➜ having ➜ order by ➜ limit

 

where 과 having 의 차이

 

where : 가져온 테이블에서 데이터의 필터링을 원할 때 사용한다.

having : 같은 조건절이지만, group by 한 결과물에서 데이터의 필터링을 원할 때 사용한다.

즉, group by 이용 ➜ having 사용


 

위에 풀었던 문제를 올바르게 하기 위해서는 where 이 아닌 having 을 사용해야 한다.

 

2. O_cnt 기준 주문건수가 10 초과인 결과만 조회 (옳은 답)