[sql] 중첩 쿼리를 사용한 데이터 그룹화와 집계 함수 적용

중첩 쿼리란 한 쿼리 안에 또 다른 쿼리를 포함하는 것을 말합니다. 중첩 쿼리를 사용하면 여러 테이블 간의 관계를 분석하거나, 데이터를 필터링하거나, 특정 조건에 따라 그룹화하고 이에 대한 집계 함수를 적용할 수 있습니다.

이번 포스트에서는 중첩 쿼리를 사용하여 데이터를 그룹화하고, 그에 따라 집계 함수를 적용하는 방법에 대해 알아보겠습니다.

데이터 그룹화

데이터 그룹화란 특정 기준에 따라 데이터를 그룹으로 묶는 것을 말합니다. 예를 들어, 한 회사의 직원 데이터가 있다고 할 때, 데이터를 부서별로 그룹화하여 각 부서의 평균 연봉을 구하는 것이 데이터 그룹화의 한 예입니다.

먼저, 중첩 쿼리를 사용하여 데이터를 그룹화하는 방법을 살펴보겠습니다. 아래는 부서별 평균 연봉을 구하는 쿼리의 예시입니다.

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;

위의 쿼리는 직원 테이블에서 부서별로 평균 연봉을 구하는 것을 보여줍니다. 여기서 GROUP BY 절은 부서별로 데이터를 그룹화하고, AVG 함수는 각 그룹에 대한 평균 값을 계산합니다.

집계 함수 적용

집계 함수는 특정 그룹에 대한 집계(합계, 평균, 개수 등)를 계산하는 함수를 말합니다. 중첩 쿼리를 사용하여 특정 그룹에 대한 집계 함수를 적용할 수 있습니다.

아래는, 위에서 그룹화한 결과를 바탕으로 평균 연봉이 특정 값 이상인 부서를 찾는 쿼리의 예시입니다.

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;

위의 쿼리에서 HAVING 절은 그룹화된 데이터에 대한 조건을 지정하는데 사용됩니다. 이 쿼리는 평균 연봉이 50000 이상인 부서를 찾는 것을 보여줍니다.

중첩 쿼리를 사용하여 데이터를 그룹화하고, 그에 따라 집계 함수를 적용하는 방법에 대해 알아보았습니다. 데이터 분석이나 보고서 작성 등 다양한 상황에서 중첩 쿼리를 효과적으로 활용할 수 있으니, 데이터베이스 쿼리 작성 시 유용하게 활용해 보시기 바랍니다.

참고 문헌: