MySQL

MySQL의 모든 데이터 값을 더하는 sum()함수와 평균을 구하는 avg()함수

HooSL 2021. 12. 9. 09:12

예시 문)

INSERT INTO books (title, author_fname, author_lname, released_year, stock_quantity, pages)
VALUES
('The Namesake', 'Jhumpa', 'Lahiri', 2003, 32, 291),
('Norse Mythology', 'Neil', 'Gaiman',2016, 43, 304),
('American Gods', 'Neil', 'Gaiman', 2001, 12, 465),
('Interpreter of Maladies', 'Jhumpa', 'Lahiri', 1996, 97, 198),
('A Hologram for the King: A Novel', 'Dave', 'Eggers', 2012, 154, 352),
('The Circle', 'Dave', 'Eggers', 2013, 26, 504),
('The Amazing Adventures of Kavalier & Clay', 'Michael', 'Chabon', 2000, 68, 634),
('Just Kids', 'Patti', 'Smith', 2010, 55, 304),
('A Heartbreaking Work of Staggering Genius', 'Dave', 'Eggers', 2001, 104, 437),
('Coraline', 'Neil', 'Gaiman', 2003, 100, 208),
('What We Talk About When We Talk About Love: Stories', 'Raymond', 'Carver', 1981, 23, 176),
("Where I'm Calling From: Selected Stories", 'Raymond', 'Carver', 1989, 12, 526),
('White Noise', 'Don', 'DeLillo', 1985, 49, 320),
('Cannery Row', 'John', 'Steinbeck', 1945, 95, 181),
('Oblivion: Stories', 'David', 'Foster Wallace', 2004, 172, 329),
('Consider the Lobster', 'David', 'Foster Wallace', 2005, 92, 343),
('10% Happier', 'Dan', 'Harris', 2014, 29, 256),
('fake_book', 'Freida', 'Harris', 2001, 287, 428),
('Lincoln In the Bardo', 'George', 'Saunders', 2017, 156, 375);

 

1. 해당 컬럼 데이터의 값을 더하는 sum() 함수

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

sum() 함수 예제

-- 각 작가별로, 쓴 책의 페이지수를 더하세요
select author_fname,author_lname,sum(pages)
from books
group by author_fname,author_lname;

 

 

2. 해당 컬럼 데이터의 값의 평균을 구하는 avg() 함수

-- 총 책의 페이지수 평균
select avg(pages)
from books;

avg() 함수 예제

-- 각 연도 별로 stock_quantity의 평균
select avg(stock_quantity),released_year
from books
group by released_year
order by released_year; -- 정렬은 항상 마지막