본문 바로가기
MySQL

[MySQL] 데이터 집계함수 count, sum, avg, max, min

by coding_su 2022. 12. 7.

📝MySQL Workbench 데이터 집계함수

갯수를 세는 함수 count()
값을 모두 더해주는 함수 sum()
평균을 구하는 함수 avg()
최대값을 구하는 함수 max()
최소값을 구하는 함수 min()

 

갯수를 세는 함수 count()

-- books 테이블의 데이터 갯수는 ?
select count(*)
from books ;

-- author_lname의 유니크한 데이터의 갯수는 ?
select count(distinct author_lname)
from books ;

-- 책 제목에 the가 들어간 책은 몇권 ?
select count(*)
from books
where title like '%the%' ;

 

값을 모두 더해주는 함수 sum()

-- books 테이블의 모든 책 페이지수를 다 더하면?
select sum(pages)
from books;

-- 각 작가별로 자신이 쓴 책의 페이지수를 모두 더해서 작가이름과 페이지수의 합을 가져오기
select concat(author_lname, ' ', author_fname) as full_name, sum(pages)
from books
group by author_lname, author_fname ;

 

평균을 구하는 함수 avg()

-- books 테이블의 페이지수 평균을 구하기
select avg(pages)
from books ;

-- 년도와 재고평균만 나오도록 년도별로 재고의 평균을 구하기
select avg(stock_quantity), released_year
from books
group by released_year ;

 

최대값을 구하는 함수 max(), 최소값을 구하는 함수 min()

-- 페이지 최대값 찾기
select max(pages)
from books ;

-- 페이지수의 최대값과 최소값을 가져오기
select max(pages), min(pages)
from books ;

-- 페이지수가 가장 긴 책의 제목은?
-- 잘못된 SQL
select title, max(pages)
from books ;

-- max값 구해서 sub query 하기
select *
from books
where pages = (select max(pages) from books);

-- 재고가 가장 적은 책의 책이름과 작가의 fname, lname를 가져오기
select title, author_fname, author_lname
from books
where stock_quantity = (select min(stock_quantity) from books);

댓글