집계(그룹, 집합) 함수
- 하나 이상의 행을 그룹으로 묶어 연산하여 총합, 평균 등을 하나의 결과로 반환
- GROUP BY, HAVING과 함께 자주 쓰임
| COUNT(필드명) | NULL 값이 아닌 레코드 수를 리턴 |
| SUM(필드명) | 필드명에 해당하는 레코드 값의 합계 리턴 |
| AVG(필드명) | 각각의 그룹 안에서 필드명에 해당하는 레코드 값의 평균 리턴 |
| MAX(필드명) | 필드명에 해당하는 레코드 값 중 최대값을 리턴 |
| MIN(필드명) | 필드명에 해당하는 레코드 값 중 최소값을 리턴 |
COUNT
- NULL 값은 COUNT에 포함하지 않는다.
-- 테이블 생성,
-- auto_increment는 무조건 pk로 설정해줘야 함!
CREATE TABLE count_demos (
id INT AUTO_INCREMENT,
val INT,
PRIMARY KEY (id)
);
-- 값 삽입
-- auto_increment는 삽입 안해도 자동으로 값 증가
INSERT INTO count_demos(val)
VALUES(1),(1),(2),(2),(NULL),(3),(4),(NULL),(5);
-- 전체 출력
SELECT
*
FROM
count_demos;
-- count 사용해서 출력
-- DISTINCT 중복 제거
SELECT
COUNT(id) '인덱스' , COUNT(val) '숫자', COUNT(DISTINCT val) '중복제외 숫자'
FROM
count_demos;

SUM
CREATE TABLE sum_demo (
n INT
);
INSERT INTO sum_demo(n)
VALUES(1),(1),(2),(NULL),(3);
SELECT
*
FROM
sum_demo;
SELECT
SUM(n) '합', SUM(DISTINCT n) '중복제거 합'
FROM
sum_demo;

AVG & MIN & MAX
-- AVG
SELECT
AVG(buyprice) 'Average Price'
FROM
products;
-- MIN, MAX
SELECT
MIN(buyprice) 'Min Price', MAX(buyprice) 'Max Price'
FROM
products;

참고
https://www.mysqltutorial.org/
MySQL Tutorial - Learn MySQL Fast, Easy and Fun.
MySQL Tutorial website provides you with the most comprehensive MySQL tutorial that helps you learn MySQL fast, easy & fun.
www.mysqltutorial.org
'DB' 카테고리의 다른 글
| [MySQL] 함수(Function) - 숫자 (0) | 2022.03.16 |
|---|---|
| [MySQL] 트랜잭션(Transaction) - TCL(ROLLBACK, SAVEPOINT, COMMIT) (0) | 2022.03.16 |
| SQL 샘플데이터 사용 (0) | 2022.03.16 |
| [MySQL] SQL - DML(INSERT, UPDATE, DELETE, SELECT) (0) | 2022.03.15 |
| [MySQL] mac에서 mysql 사용자 생성하기 (0) | 2022.03.15 |