DB/실습

9. [ DB ] MySQL 숫자열 함수 : 정의와 활용 예시

천재단미 2024. 11. 30. 16:48
728x90
반응형

 

이번 시간에는 숫자열 함수에 대해서 알아보도록 하겠습니다. 

 

 

 

 

 

 

 

 

1. count() 

 

 

 

1) 정의 

 

 

SQL에서 행의 수를 세는 데 사용되는 집계 함수입니다.

 

 

 

2) 기본 구문

 

 



SELECT COUNT(column_name)
FROM table_name
WHERE condition;



 

 

 

(1) 예시 : 전체 

조건 1. books 테이블에 책 데이터가 들어있다. 책은 총 몇 권인가?

 



SELECT count( * )  -- count( * )   모든 행의 수를 셉니다 (NULL 포함)
from books;


 

12

 

(2) 예시 : 지정된 고윳값

조건 1. (author_lname) 책 쓴 사람은 총 몇 명이냐. 

 



SELECT COUNT( DISTINCT author_lname ) -- DISTINCT  지정된 열의 고유한 값의 수를 셉니다.
from books;


 

 

 

12-1

 

 

 

(3) 예시 (복합조건)

조건 1. 책 제목에 the 가 들어간 책은 몇 권입니까?

 



SELECT*, count( * )
from books
where title like '%the%';


 

 

1

 

 

 

 

 

 

 

 

 

 

 

2. group by()

 

 

 

1) 정의 

 

 

 

SQL에서 데이터를 특정 열을 기준으로 그룹화하는 기능을 제공합니다. 이 명령어는 같은 값을 가진 행들을 하나의 그룹으로 묶어 결과를 반환합니다.

 

 

 

 

 

2) 기본 구문 

 



SELECT1, 집계함수(2)
FROM 테이블
GROUP BY1;



 

 

 

(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() 등의 집계 함수와 함께 사용하여 그룹별 통계를 계산할 수 있습니다.



 

2

 

 

 

(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

 

 

 

 

 

 

 

 

 

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 값은 자동으로 무시됩니다.




 

 

4

 

 

 

(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를 사용하지 않으면 전체 데이터의 평균을 계산합니다.


 

5-1

 

 

(2) 예시 - 집계 함수와 함께 사용

조건 1. 각 작가별로 자신이 쓴 책의 평균 페이지수를 알고 싶다.

 



SELECT author_lname, AVG( pages ) as page_avg
from books
group by author_lname
order by page_avg desc;


-- GROUP BY 절과 함께 사용하여 그룹별 평균을 계산할 수 있습니다.


 

 

 

5-2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5. max()

 

 

 

1) 정의 

 

 

SQL에서 특정 컬럼의 최댓값을 찾는 데 사용되는 집계 함수입니다. MAX() 함수는 숫자뿐만 아니라 문자열이나 날짜 데이터에도 적용할 수 있습니다. NULL 값은 자동으로 무시되며, NULL이 아닌 값들 중에서 최댓값을 찾습니다.

 

 

 

 

2) 기본 구문

 



SELECT MAX(column_name)
FROM table_name;


 

 

 

(1) 예시 

조건 1. 페이지수가 가장 많은 책은, 몇 페이지인가?

 



SELECT max( pages )
from books;


 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

5. min()

 

 

 

1) 정의 

 

 

 

SQL에서 특정 컬럼의 최솟값을 찾는 데 사용되는 집계 함수입니다. 숫자, 문자열, 날짜 데이터에 적용할 수 있습니다. NULL 값은 자동으로 무시되며, NULL이 아닌 값들 중에서 최솟값을 찾습니다.

 

 

 

 

2) 기본 구문 

 



SELECT MIN(column_name)
FROM table_name;


 

 

 

 

(1) 예시 

조건 1. 페이지 컬럼에서, 가장 적은 페이지수는??

 



SELECT min( pages )
from books;


 

 

8

 

 

 

 

 

728x90
반응형
home
}