oracle
오라클 Group by having 절 사용하기
구름Grum
2023. 3. 7. 10:18

Oracle에서 HAVING 절은 그룹 함수로 집계된 결과에 대한 조건을 지정하는 데 사용됩니다. 이를 통해 그룹 함수로 집계된 결과 중에서 특정 조건을 만족하는 그룹만을 조회할 수 있습니다.
다음은 "orders" 테이블에서 "order_date" 컬럼 값이 2022년인 주문 정보를 지역별로 그룹화하여 각 지역별 주문 총액이 10000 이상인 경우에 대한 쿼리입니다.
SELECT region, SUM(total_amount) AS total_sales
FROM orders
WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31'
GROUP BY region
HAVING SUM(total_amount) >= 10000;
위의 쿼리에서 "WHERE" 절은 "order_date" 컬럼 값이 2022년인 주문 정보를 가져옵니다. "GROUP BY" 절은 "region" 컬럼 값으로 그룹화합니다. "SUM(total_amount)"은 각 그룹에서 "total_amount" 컬럼 값을 합산한 결과를 반환합니다. "HAVING" 절은 "SUM(total_amount)" 값이 10000 이상인 그룹만을 가져옵니다.
다른 예시로는 "employees" 테이블에서 "job_id" 컬럼 값이 'SA_REP'인 직원들 중에서 급여 평균이 6000 이상인 경우를 조회하는 쿼리가 있습니다.
SELECT job_id, AVG(salary) AS avg_salary
FROM employees
WHERE job_id = 'SA_REP'
GROUP BY job_id
HAVING AVG(salary) >= 6000;
위의 쿼리에서 "WHERE" 절은 "job_id" 컬럼 값이 'SA_REP'인 직원들을 가져옵니다. "GROUP BY" 절은 "job_id" 컬럼 값으로 그룹화합니다. "AVG(salary)"은 각 그룹에서 "salary" 컬럼 값의 평균값을 계산한 결과를 반환합니다. "HAVING" 절은 "AVG(salary)" 값이 6000 이상인 그룹만을 가져옵니다.