본문 바로가기
MYSQL

MYSQL - 숫자를 세는 count( ),합산sum( ), 평균avg( ), 최대/최소값 max( ),min( )

by 하니__ 2024. 5. 14.

 
 
 

 
이런 데이터가 있다
 
사실 이 데이터는 몇개 되지않아 눈으로 3초 안에 몇개의 데이터가 있는지 확인이 가능하지만
수천개라고 할때
몇개인지 일일히 셀 수 없다
 
그럴때는
 

count()

 
 
보통 전체의 데이터를 확인할때

select *
from books;

이렇게 확인하는데
 
이 books 테이블안의 데이터가 몇개인지 확인해야할때는
*을 count( )로 감싸주면 되겠다

select count(*)
from books;

 
 
그러면 이렇게 몇개의 행을 가지고 있는지 알려준다
 
그렇다면 만약
책 제목에 the가 들어간 책의 갯수 같은것을 알려고 할때에는?

select count(title)
from books
where title like '%the%';

라고 카운트로 감싸주기만 하면 해당하는 컬럼의 숫자를 카운트 할 수 있다
물론 저것만 보면 뭔지 알기 힘드니까
 

select count(title) as title_cnt
from books
where title like '%the%';

이런식으로 이름을 지정해주면 보기 깔끔하겠다

 

합산 sum( )

 

페이지수의 합산을 보고 싶다면

간단하게 select 페이지의

페이지를 sum ( )으로 감싸주면 되겠다

select sum(pages)
from books;

 

 

 

 

 

평균 avg( )

 

그렇다면 페이지수의 평균을 알고 싶다면?

이번에는 sum 이 아니라 avg( )로 감싸주면 되겠다

select avg(pages) as avg_pages
from books;

 

 
 

최대값과 최소값 max( ), min( )

 
페이지 수가 가장 많은 책은 몇 페이지?
출판년도가 가장 빠른 책은 몇년도?
 
 
같은 질문이 온다면
그 전까지는

select pages
from books
order by pages desc
limit 1;

select released_year
from books
order by released_year
limit 1;

이런 식으로 작성 했었다
 
하지만 그럴 필요 없이
 
select 
부분의 해당하는 녀석을 max( ) min( )
파라미터 안에 넣어주면 되겠다

select max(pages)
from books;

select min(released_year)
from books;

각각 이렇게 넣어주게 되면

 
 
이렇게 결과값이 똑같다