카테고리 없음
[ORACLE] GROUP BY , HAVING
쓴는는
2021. 10. 17. 23:50
GROUP BY절
- - GROUP BY 절은 데이터들을 원하는 그룹으로 나눌 수 있다.
- - 나누고자 하는 그룹의 컬럼명을 SELECT절과 GROUP BY절 뒤에 추가하면 된다.
- - 집계함수와 함께 사용되는 상수는 GROUP BY 절에 추가하지 않아도 된다. (개발자 분들이 많이 실수 함)
- - 아래는 집계 함수와 상수가 함께 SELECT 절에 사용되는 예이다.
HAVING 절
- - WHERE 절에서는 집계함수를 사용 할 수 없다.
- - HAVING 절은 집계함수를 가지고 조건비교를 할 때 사용한다.
- - HAVING절은 GROUP BY절과 함께 사용이 된다.
DISTINCT와 GROUP BY절
- - DISTINCT와 GROUP BY 개념에 대해서 좀 더 이해를 해보자.
- - DISTINCT는 주로 UNIQUE(중복을 제거)한 컬럼이나 레코드를 조회하는 경우 사용한다.
- - GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다.
- - 하지만 두 작업은 조금만 생각해보면 동일한 형태의 작업이라는 것을 쉽게 알 수 있으며, 일부 작업의 경우 DISTINCT로 동시에 GROUP BY로도 처리될 수 있는 쿼리들이 있다.
- - 두 기능 모두 Oracle9i까지는 sort를 이용하여 데이터를 만들었지만, Oracle10g 부터는 모두 Hash를 이용하여 처리한다.
- - 그래서 DISTINCT를 사용해야 할지, GROUP BY를 사용해서 데이터를 조회하는 것이 좋을지 고민되는 경우들이 가끔 있다.