Loading...

DB/Oracle / / 2022. 2. 10. 16:30

DB 33강. HAVING

반응형

그룹핑한 데이터에서 조건을 걸 수 없다.

WHRER보다 GROUP BY가 먼저 실행되기 때문이다.

 

이때 HAVING을 이용한다.

 

WHERE이 실행되는 순서때문에 나온 것이다.

 

순서가 FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY이기 때문!

 

오라클 쿼리 실행 순서

 

1. FROM : SQL 테이블 최우선 확인

2. WHERE : 테이블에서 주어진 조건에 맞는 레코드 추출

3. GROUP BY : 공통적인 데이터끼리 그룹 생성

4. HAVING : 주어진 조건에 맞는 그룹 추출

5. SELECT : 최종적으로 추출된 프로젝션 조회

6. ORDER BY : 추출된 데이터 정렬

 

-- having은 group by되고 난 뒤에 조건절
SELECT job, max(sal)
FROM emp
GROUP BY job
HAVING max(sal) >= 2500;

사실 HAVING은 많이 사용하지 않고

인라인뷰로 해결한다.

SELECT *
FROM (
SELECT job, max(sal) money
FROM emp
GROUP BY job
)
WHERE money > 2500;

 

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

 

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형