MySQL Aggregate Functions


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 절을 사용하여 그룹화된 데이터에 대해 필터링을 적용하면 더욱 구체적이고 유용한 결과를 얻을 수 있습니다. 이러한 기능들을 잘 활용하면 데이터베이스에서의 데이터 분석과 리포팅 작업을 효율적으로 수행할 수 있습니다.


Leave a Reply

Your email address will not be published. Required fields are marked *