티스토리 뷰
SQL 집계 함수 기본 문법
집계 함수는 여러 행의 값을 집계하여 단일 결과를 반환하는 함수입니다.
자주 사용되는 집계 함수로는 COUNT(), SUM(), AVG(), MIN(), MAX() 등이 있습니다.
이 함수들은 일반적으로 SELECT 문과 함께 사용되며, GROUP BY와 함께 사용하면 특정 그룹별로 데이터를 집계할 수 있습니다.
주요 집계 함수 설명
1. COUNT(): 특정 열의 행 개수를 반환합니다.
SELECT COUNT(column_name)
FROM table_name;
2. SUM(): 지정된 열의 값들의 총합을 계산합니다.
SELECT SUM(column_name)
FROM table_name;
3. AVG(): 지정된 열의 값들의 평균을 계산합니다.
SELECT AVG(column_name)
FROM table_name;
4. MIN(): 지정된 열의 최소값을 반환합니다.
SELECT MIN(column_name)
FROM table_name;
5. MAX(): 지정된 열의 최대값을 반환합니다.
SELECT MAX(column_name)
FROM table_name;
예시
데이터베이스 테이블 예시
다음과 같은 sales 테이블이 있다고 가정해 봅시다.
sale_id | product | quantity | price | sale_date |
1 | Laptop | 2 | 1200.00 | 2024-07-01 |
2 | Monitor | 5 | 300.00 | 2024-07-01 |
3 | Keyboard | 10 | 50.00 | 2024-07-02 |
4 | Laptop | 1 | 1200.00 | 2024-07-03 |
5 | Mouse | 15 | 25.00 | 2024-07-04 |
예시 1: COUNT() 사용
SELECT COUNT(sale_id) AS total_sales
FROM sales;
결과: sales 테이블에서 전체 판매 건수를 계산합니다.
total_sales |
5 |
예시 2: SUM() 사용
SELECT SUM(quantity) AS total_quantity
FROM sales;
결과: sales 테이블에서 판매된 총 수량을 계산합니다.
total_quantity |
33 |
예시 3: AVG() 사용
SELECT AVG(price) AS average_price
FROM sales;
결과: sales 테이블에서 판매된 제품의 평균 가격을 계산합니다.
average_price
average_price |
555.00 |
예시 4: MIN() 사용
SELECT MIN(price) AS lowest_price
FROM sales;
결과: sales 테이블에서 가장 저렴한 제품의 가격을 반환합니다.
lowest_price |
25.00 |
예시 5: MAX() 사용
SELECT MAX(price) AS highest_price
FROM sales;
결과: sales 테이블에서 가장 비싼 제품의 가격을 반환합니다.
highest_price |
1200.00 |
예시 6: GROUP BY와 함께 사용
SELECT product, SUM(quantity) AS total_quantity_sold
FROM sales
GROUP BY product;
결과: sales 테이블에서 각 제품별로 총 판매된 수량을 계산합니다.
product | total_quantity_sold |
Laptop | 3 |
Monitor | 5 |
Keyboard | 10 |
Mouse | 15 |
Good 사용법
1. 데이터 요약 및 분석: 집계 함수는 데이터베이스의 데이터를 요약하고 분석하는 데 필수적입니다. 예를 들어, 판매 데이터에서 총 수익이나 평균 판매 가격을 계산할 때 유용합니다.
SELECT SUM(price * quantity) AS total_revenue
FROM sales;
2. GROUP BY와 함께 사용: 특정 그룹별로 데이터를 요약하고 분석할 때 매우 유용합니다.
SELECT product, COUNT(*) AS sales_count
FROM sales
GROUP BY product;
Bad 사용법
1. 잘못된 함수 사용: 집계 함수는 의도에 맞게 사용해야 합니다. 예를 들어, NULL 값이 포함된 경우 COUNT()는 NULL을 무시하므로,
정확한 행 수를 세기 위해 COUNT(*)를 사용하는 것이 좋습니다.
-- price 열에 NULL 값이 있는 경우
SELECT COUNT(price) FROM sales; -- NULL 값을 포함하지 않음
SELECT COUNT(*) FROM sales; -- 모든 행을 계산
2. 복잡한 조건에서 성능 저하: 많은 데이터에 집계 함수를 사용할 때 성능 문제가 발생할 수 있습니다. 이러한 경우 인덱스나 데이터 정규화 등을 고려해야 합니다.
SELECT SUM(large_column)
FROM very_large_table;
SQL 집계 함수는 데이터를 요약하고 분석하는 데 매우 중요한 도구입니다.
각 함수를 적절하게 사용하면 데이터를 효과적으로 이해하고 필요한 정보를 추출할 수 있습니다.
하지만 성능 문제나 잘못된 사용으로 인해 예상치 못한 결과가 발생할 수 있으므로 주의해야 합니다.