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()에 평균을 구하고자 하는 컬럼을 넣어주면, 카테고리컬 데이터의 평균값을 리턴해준다.

'Database' 카테고리의 다른 글
| MySQL 에서 날짜 / 시간 관련 처리하는 문법 (0) | 2022.12.07 |
|---|---|
| count, group by 함수 사용법 (0) | 2022.12.07 |
| 문자열 컬럼에서 데이터를 가공하는 문법 ( distinct, order by, limit / offset ,like ) (0) | 2022.12.07 |
| 문자열 컬럼의 데이터를 가공하는 여러 함수들, concat(), substring(), reverse(), char_length(), upper() / lower() (0) | 2022.12.06 |
| MySQL 테이블에 데이터 update / delete 하기 (0) | 2022.12.06 |