SQL

Aggregate Function 집계 함수 - COUNT/SUM/AVG/MIN/MAX

얆생 2023. 7. 7. 16:51

COUNT

  •  개수를 세어줌
SELECT COUNT(* 또는 칼럼명)
FROM 테이블명

 

  • Products
ProductID ProductName SupplierID Price
1 A 1 18
2 A 2 19
3 B 3 Null
4 C 5 22
5 Null Null 5

 

- 전체 개수 세기

SELECT COUNT (*)
FROM products

>> 5

 

- ProductName 개수 세기, 유일값만 세기

SELECT COUNT(productname)
FROM products

>> 4
-- Null 값은 빼고 세줌
SELECT COUNT(DISTINCT productname)
FROM products

>> 3
-- Null값 빼고 중복 안되게

 

 

 

SUM

  •  숫자 데이터를 가진 칼럼의 합을 계산해줌
SELECT SUM(칼럼명)
FROM 테이블명

 

- products 테이블에서 price 합 구하기

SELECT SUM(price)
FROM products

>> 64

 

 

 

 

AVG

  • 숫자 데이터를 가진 칼럼의 평균을 계산해줌
SELECT AVG(칼럼명)
FROM 테이블명

 

- products 테이블의 price 칼럼 평균 구하기

SELECT AVG(price)
FROM products

>> 16

!! Null값 주의 !!

- 값을 다 더한 후(18+19+22+5) 'Null값이 아닌 데이터'의 개수(4)로 나눠줌

 

- 만약, Null을 0으로 취급하고 계산하고 싶다면?

SELECT SUM(price)/COUNT(*)
FROM Products

>> 12.8

 

 

 

MIN / MAX

  • 숫자 데이터가 있는 칼럼에서 최소/최대값을 계산해줌
SELECT MIN(칼럼명)
FROM 테이블명

SELECT MAX(칼럼명)
FROM 테이블명

 

- products 테이블에서 price 칼럼의 최솟값/최댓값 구하기

SELECT MIN(price)
FROM products

>> 5
SELECT MAX(price)
FROM products

>> 22

 

 

 

모든 aggregation 함수 한번에 출력하기

SELECT COUNT(price), SUM(price), AVG(price), MIN(price), MAX(price)
FROM Products
COUNT(price) SUM(price) AVG(price) MIN(price) MAX(price)
4 64 16 5 22