이번 시간에는 숫자열 함수에 대해서 알아보도록 하겠습니다.
1. count()
1) 정의
SQL에서 행의 수를 세는 데 사용되는 집계 함수입니다.
2) 기본 구문
SELECT COUNT(column_name) FROM table_name WHERE condition; |
(1) 예시 : 전체
조건 1. books 테이블에 책 데이터가 들어있다. 책은 총 몇 권인가?
SELECT count( * ) -- count( * ) 모든 행의 수를 셉니다 (NULL 포함)
from books; |

(2) 예시 : 지정된 고윳값
조건 1. (author_lname) 책 쓴 사람은 총 몇 명이냐.
SELECT COUNT( DISTINCT author_lname ) -- DISTINCT 지정된 열의 고유한 값의 수를 셉니다.
from books; |

(3) 예시 (복합조건)
조건 1. 책 제목에 the 가 들어간 책은 몇 권입니까?
SELECT*, count( * )
from books where title like '%the%'; |

2. group by()
1) 정의
SQL에서 데이터를 특정 열을 기준으로 그룹화하는 기능을 제공합니다. 이 명령어는 같은 값을 가진 행들을 하나의 그룹으로 묶어 결과를 반환합니다.
2) 기본 구문
SELECT 열1, 집계함수(열2) FROM 테이블 GROUP BY 열1; |
(1) 예시 - 집계 함수와 함께 사용
조건 1. author_lname 별로 몇 권의 책을 썼는지,
조건 2. 작가의 author_lname과 책의 개수를 보여주세요.
SELECT author_lname , COUNT(*) as book_cnt
FROM books group by author_lname ; -- COUNT(), SUM(), AVG(), MAX(), MIN() 등의 집계 함수와 함께 사용하여 그룹별 통계를 계산할 수 있습니다. |

(3) 예시 - HAVING 절과 함께 사용
조건 1. 출간 연도가 2000년 이상인 데이터에서,
조건 2. 연도별 재고수량의 평균값이 70보다 큰 데이터의
조건 3. 년도와 평균값을 보여주되,
조건 4. 평균값이 높은 것부터 정렬해서 보여주세요.
SELECT released_year , avg( stock_quantity ) as stock_avg
from books WHERE released_year >= 2000 GROUP BY released_year HAVING stock_avg > 70 ORDER BY stock_avg desc; -- 그룹화된 결과에 조건을 적용할 때 HAVING 절을 사용합니다. |

3. sum()
1) 정의
SQL에서 특정 컬럼의 숫자 데이터 총합을 계산하는 데 사용되는 집계 함수입니다.
2) 기본 구문
SELECT SUM(column_name) AS total_sum FROM table_name; |
(1) 예시
조건 1. 각 작가별로 자신이 쓴 책의 페이지수를 다 더하면??
SELECT author_lname , sum( pages ) from books group by author_lname ; -- 계산 시 NULL 값은 자동으로 무시됩니다. |

(2) 예시 - 그룹화와 함께 사용
조건 1. 각 작가별로 자신이 쓴 책의 페이지수를 다 더하면??
SELECT author_lname , sum( pages )
from books group by author_lname ; -- GROUP BY 절과 함께 사용하여 그룹별 합계를 계산할 수 있습니다. |
4. avg()
1) 정의
SQL에서 특정 컬럼의 평균값을 계산하는 데 사용되는 집계 함수입니다.
2) 기본 구문
SELECT AVG(column_name) FROM table_name; |
(1) 예시
조건 1. books 테이블의 페이지수 평균은??
SELECT avg( pages )
from books; -- NULL 값은 자동으로 무시되고, NULL이 아닌 값들에 대해서만 평균을 계산합니다. -- GROUP BY를 사용하지 않으면 전체 데이터의 평균을 계산합니다. |

(2) 예시 - 집계 함수와 함께 사용
조건 1. 각 작가별로 자신이 쓴 책의 평균 페이지수를 알고 싶다.
SELECT author_lname, AVG( pages ) as page_avg
from books group by author_lname order by page_avg desc; -- GROUP BY 절과 함께 사용하여 그룹별 평균을 계산할 수 있습니다. |

5. max()
1) 정의
SQL에서 특정 컬럼의 최댓값을 찾는 데 사용되는 집계 함수입니다. MAX() 함수는 숫자뿐만 아니라 문자열이나 날짜 데이터에도 적용할 수 있습니다. NULL 값은 자동으로 무시되며, NULL이 아닌 값들 중에서 최댓값을 찾습니다.
2) 기본 구문
SELECT MAX(column_name) FROM table_name; |
(1) 예시
조건 1. 페이지수가 가장 많은 책은, 몇 페이지인가?
SELECT max( pages )
from books; |

5. min()
1) 정의
SQL에서 특정 컬럼의 최솟값을 찾는 데 사용되는 집계 함수입니다. 숫자, 문자열, 날짜 데이터에 적용할 수 있습니다. NULL 값은 자동으로 무시되며, NULL이 아닌 값들 중에서 최솟값을 찾습니다.
2) 기본 구문
SELECT MIN(column_name) FROM table_name; |
(1) 예시
조건 1. 페이지 컬럼에서, 가장 적은 페이지수는??
SELECT min( pages )
from books; |

'DB > 실습' 카테고리의 다른 글
13. [ DB ] MySQL 확장 : 스키마(Schema) 활용 - 어플 / 카페 (1) | 2024.12.06 |
---|---|
11. [ DB ] MySQL 문법 : JOIN의 활용 예시 (0) | 2024.12.05 |
8. [ DB ] MySQL 문자열 함수 : 정의와 활용 예시 (2) (2) | 2024.11.29 |
7. [ DB ] MySQL 문자열 함수 : 정의와 활용 예시 (1) (2) | 2024.11.29 |
6. [ DB ] MySQL의 CRUD 작업 : 정의와 활용 예시 (0) | 2024.11.27 |