본문 바로가기

프로그래밍/오라클

[Oracle] 오라클 having & subquery

[Oracle] 오라클 having & subquery




Join 정의   ||   합석, 합치다! 는 의미! 


종류(사용법) 
1) 오라클   
2) Ansi 표준 



Having절 정리    ||

Group by 에서만 사용 가능하고, Count(*)나 Sum()등의 Group 함수에 조건을 줄 수 있다.

- Having절 처리 순서

  1. Row들이 Group되어진다.

  2. Group에 대해 Group Function이 적용된다.

  3. Having절을 만족하는 Group을 선택한다.



즉, Having절은 그룹으로 묶여진 컬럼들에 조건을 주어 
     원하는 결과를 더 세부적으로 검색토록 한다.



예제1. 2005년도 판매일자, 판매총액(5,000,000초과의 경우만), 판매수량(50초과의 경우만), 판매횟수를 조회하시오. (단, 판매횟수가 8개 이상인 판매일자만 조회)




예제2. 2005년도 회원 직업 별 판매금액(판매가 prod_sale) * 판매갯수(cart_qty)를 조회하시오. (단, 지역은 대전으로 한정 & 판매금액은 20,000,000 이상인 데이터로 한정)





예제3. 서브쿼리 예제 01







예제4. 서브쿼리 예제 02






예제5. 스칼라 서브쿼리 예제 03







예제6. 스칼라 서브쿼리 예제 04

컬럼에 사용하기. 이때, 서브쿼리의 select 결과와 마더 쿼리의 결과 행수가 같아야 한다! 그래서 서브쿼리 내부에 key 컬럼으로 조건을 주어 결과수를 꼭 일치하게 한다!!!







예제7. 스칼라 서브쿼리 예제 04










예제10. 스칼라 서브쿼리 예제 04





예제11. 스칼라 서브쿼리 예제 05






예제12. 스칼라 서브쿼리 예제 06






예제13. 스칼라 서브쿼리 예제 08






예제14. 인라인뷰 서브쿼리 예제

알고가자. 집계함수 자체를 컬럼명으로 쓸 수 없기 때문에, alias를 써준다.