MySQL에서 집계 함수는 데이터 집합을 요약하거나 통계적으로 분석하는 데 사용됩니다. 집계 함수는 일반적으로 GROUP BY
절과 함께 사용되어 데이터를 그룹화하고, HAVING
절을 통해 집계된 데이터에 조건을 적용합니다. 주요 집계 함수에는 COUNT
, SUM
, AVG
, MAX
, MIN
등이 있습니다.
COUNT, SUM, AVG, MAX, MIN 등의 집계 함수 활용 (Using Aggregate Functions: COUNT, SUM, AVG, MAX, MIN)
1. COUNT
COUNT
함수는 특정 컬럼 또는 전체 레코드의 수를 계산합니다. 이 함수는 레코드의 수를 세는 데 유용하며, 특정 조건을 만족하는 레코드의 수를 카운트할 수도 있습니다.
예제: 전체 레코드 수 구하기
SELECT COUNT(*) AS total_users FROM users;
위의 쿼리는 users
테이블의 전체 레코드 수를 반환합니다. *
는 모든 레코드를 포함하겠다는 의미입니다.
예제: 특정 조건을 만족하는 레코드 수 구하기
SELECT COUNT(*) AS active_users FROM users WHERE status = 'active';
위의 쿼리는 status
가 'active'
인 users
테이블의 레코드 수를 반환합니다.
2. SUM
SUM
함수는 특정 컬럼의 값들을 모두 더하여 합계를 계산합니다. 주로 수치 데이터의 합계를 구하는 데 사용됩니다.
예제: 전체 매출 합계 구하기
SELECT SUM(price) AS total_sales FROM orders;
위의 쿼리는 orders
테이블의 price
컬럼의 합계를 계산하여 전체 매출을 반환합니다.
3. AVG
AVG
함수는 특정 컬럼의 평균 값을 계산합니다. 데이터 집합의 평균적인 값을 구할 때 사용됩니다.
예제: 평균 가격 구하기
SELECT AVG(price) AS average_price FROM products;
위의 쿼리는 products
테이블의 price
컬럼의 평균 값을 반환합니다.
4. MAX
MAX
함수는 특정 컬럼의 최대 값을 반환합니다. 데이터 집합에서 가장 큰 값을 찾는 데 사용됩니다.
예제: 최대 가격 구하기
SELECT MAX(price) AS highest_price FROM products;
위의 쿼리는 products
테이블의 price
컬럼에서 가장 높은 값을 반환합니다.
5. MIN
MIN
함수는 특정 컬럼의 최소 값을 반환합니다. 데이터 집합에서 가장 작은 값을 찾는 데 사용됩니다.
예제: 최소 가격 구하기
SELECT MIN(price) AS lowest_price FROM products;
위의 쿼리는 products
테이블의 price
컬럼에서 가장 낮은 값을 반환합니다.
그룹화 (GROUP BY)
GROUP BY
절은 결과 집합을 특정 컬럼의 값에 따라 그룹화하여 집계 함수를 적용할 수 있게 합니다. 이는 데이터를 여러 그룹으로 나누어 각 그룹에 대해 집계 작업을 수행할 수 있게 합니다.
예제: 각 부서별 직원 수 구하기
SELECT department, COUNT(*) AS employee_count FROM employees GROUP BY department;
위의 쿼리는 employees
테이블을 department
컬럼을 기준으로 그룹화하고, 각 부서별 직원 수를 계산하여 반환합니다.
예제: 각 제품 카테고리별 평균 가격 구하기
SELECT category, AVG(price) AS average_price FROM products GROUP BY category;
위의 쿼리는 products
테이블을 category
컬럼을 기준으로 그룹화하고, 각 카테고리별 평균 가격을 계산하여 반환합니다.
그룹화된 데이터 필터링 (HAVING 절)
HAVING
절은 GROUP BY
절로 그룹화된 데이터에 대해 필터링을 적용하는 데 사용됩니다. WHERE
절은 개별 레코드에 대한 조건을 필터링하는 반면, HAVING
절은 그룹화된 결과에 대한 조건을 필터링합니다.
예제: 직원 수가 10명 이상인 부서 조회
SELECT department, COUNT(*) AS employee_count FROM employees GROUP BY department HAVING COUNT(*) >= 10;
위의 쿼리는 각 부서별 직원 수를 계산한 후, 직원 수가 10명 이상인 부서만 조회합니다.
예제: 평균 가격이 50보다 큰 제품 카테고리 조회
SELECT category, AVG(price) AS average_price FROM products GROUP BY category HAVING AVG(price) > 50;
위의 쿼리는 각 제품 카테고리별 평균 가격을 계산한 후, 평균 가격이 50보다 큰 카테고리만 조회합니다.
결론 (Conclusion)
SQL 집계 함수는 데이터 집합의 요약 및 분석을 위한 강력한 도구입니다. COUNT
, SUM
, AVG
, MAX
, MIN
등의 함수는 데이터의 통계적 정보를 제공하며, GROUP BY
절을 통해 데이터를 그룹화하여 집계 작업을 수행할 수 있습니다. HAVING
절을 사용하여 그룹화된 데이터에 대해 필터링을 적용하면 더욱 구체적이고 유용한 결과를 얻을 수 있습니다. 이러한 기능들을 잘 활용하면 데이터베이스에서의 데이터 분석과 리포팅 작업을 효율적으로 수행할 수 있습니다.