Database

max() / min(), sum(), avg() 함수 사용법

yugyeong 2022. 12. 7. 14:19

 

min(), max()

데이터의 최솟값 또는 최댓값을 구할 때는 min(), max() 를 이용한다.

 

 

 

만약, 아래의 예시처럼 페이지의 수가 가장 긴 책의 title 을 가져오라는 문제가 있을 때,

아래처럼 max() 함수를 쓰고 그 앞에 title 을 가져오는 방식은 잘못된 방법이다.

아래 방식으로 실행을 한다면, 잘못된 결과값이 리턴된다

 

 

아래 같은 문제를 풀 때는,

 

1. 정렬해서 푸는 방법

2. sub Query 를 이용하여 푸는 방법 

둘 중 하나의 방법을 이용하여야 한다.

 

 

 

1. 정렬해서 푸는 방법

 

order by 를 이용하여 내림차순으로 정렬한 후 첫번째 값을 가져오는 방법이 있다.

 

 

2. sub Query 를 이용하여 푸는 방법 

서브쿼리(Subquery)란 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL문을 말한다.

 

먼저 select max(pages) from books; 를 해서 최대값을 가져온 후 

그 값을 where 조건문에 넣어서 값을 가져오는 방법이다.

 

sql 문 안에 또 다른 sql 문이 있다고 해서 서브쿼리라고 부른다.

 

 

 

sum()

sum 함수를 이용하여서 컬럼의 값을 모두 더할 수 있다.

sum() 괄호안에 더하고자 하는 데이터의 컬럼을 넣어주면 된다.

 

 

 

avg()

avg() 함수를 이용하여, 컬럼의 평균을 구할 수 있다.

avg() 괄호안에 평균값을 구하고자 하는 컬럼명을 넣어주면 된다.

 

 

avg() 함수를 약간 응용하여서, 특정컬럼의 데이터별로 묶어서 그 데이터의 평균을 구하도록 하자.

아래처럼 group by 에 카테고리컬 컬럼을 넣어주고, avg()에 평균을 구하고자 하는 컬럼을 넣어주면, 카테고리컬 데이터의 평균값을 리턴해준다.