9. MySQL 기본 함수의 활용
집계 함수
1. 집계 함수의 개념
- DB 테이블의 여러 행으로부터 여러 행을 기반으로 연산된 결과값을 반환하는 함수
2. 집계 함수 종류
주요 집계 함수
1. SUM 함수
1) 개요 - 칼럼의 숫자형 데이터 저체 합계를 구하는 함수
- 특정 칼럼을 지정하고 특정 데이터를 기준으로 하여 합계를 구할 수 있음
- 특정 칼럼을 지정하고 특정 범위 지정 후 범위 내 합계를 구할 수 있음
2) 기본 쿼리
SELECT SUM(칼럼명) FROM 테이블명;
ex) 테이블에서 amount 칼럼의 합계를 구할 때
(1) 쿼리문
SELECT SUM(amount) FROM account;
(2) 실행 결과
3) 응용 쿼리 1
SELECT SUM(칼럼명) FROM 테이블명 WHERE 조건문;
ex) 테이블에서 type에서 '지출'의 값에 대하여 합계를 구하고자 할 때
(1) 쿼리문
SELECT SUM(amount) FROM account WHERE type = '지출';
(2) 실행 결과
4) 응용 쿼리 2
SELECT SUM(칼럼명) FROM 테이블명 WHERE 조건문 AND 추가 조건문;
ex) 5월 11일 ~ 5월 12일 사이 발생한 ' 지출' 합계를 구할 때
(1) 쿼리문
SELECT SUM(amount) FROM account
WHERE type = '지출' AND date >= '05-11' AND date <= '05-12';
(2) 실행 결과
2. AVG 함수
1) 개요 - 칼럼의 숫자형 데이터 전체 평균값을 구하는 함수
- 특정 칼럼을 지정하고 특정 데이터를 기준으로 하여 평균을 구할 수 있음
- 특정 칼럼을 지정하고 특정 범위 지정 후 범위 내 평균을 구할 수 있음
2) 기본 쿼리
SELECT AVG(칼럼명) FROM 테이블명;
ex) 테이블에서 1~3월 국어 점수(Korean 칼럼)의 평균을 구할 때
(1) 쿼리문
SELECT AVG(Korean) FROM hgdlab;
(2) 실행 결과
3) 응용 쿼리
SELECT AVG(칼럼명) FROM 테이블명 WHERE 조건문;
ex) 테이블에서 type에서 '지출'의 값에 대하여 평균을 구할 때
(1) 쿼리문
SELECT AVG(amount) FROM account WHERE type='지출';
(2) 실행 결과
3. COUNT 함수
1) 개요
- DB 특정 테이블에서 레코드가 몇 개인지 구하는 함수
- 특정 칼럼의 특정 범위 내 레코드 개수를 구할 수 있음
2) 기본 쿼리
SELECT COUNT(*) FROM 테이블명;
ex) account 테이블의 레코드 수를 확인하고자 할 경우
(1) 쿼리문
SELECT COUNT(*) FROM account;
(2) 실행 결과
2) 기본 쿼리
SELECT COUNT(*) FROM 테이블명 WHERE 조건문;
ex) 5월 11일 ~ 15일 사이 발생한 레코드의 개수를 구하고자 할 때
(1) 쿼리문
SELECT COUNT(*) FROM account
WHERE date >= '05-11' AND date <= '05-15';
(2) 실행 결과
4. MAX, MIN 함수
1) MAX 함수
- DB 테이블에서 숫자형 칼럼 데이터 중 최댓값을 구하는 함수
(1) 기본 쿼리
SELECT MAX(칼럼) FROM 테이블명;
(2) 응용 쿼리
SELECT MAX(칼럼) FROM 테이블명 WHERE 조건;
ex) amount 칼럼 값 중 최댓값 찾기
(1) 쿼리문
SELECT MAX(amount) FROM account;
(2) 실행 결과
ex) type 칼럼 데이터에서 '지출' 중 amount 최댓값 찾기
(1) 쿼리문
SELECT MAX(amount) FROM account WHERE type='지출'
(2) 실행 결과
2) MIN 함수
- DB 테이블에서 숫자형 칼럼 데이터 중 최솟값을 구하는 함수
(1) 기본 쿼리
SELECT MIN(칼럼) FROM 테이블명;
(2) 응용 쿼리
SLELECT MIN(칼럼) FORM 테이블명 WHERE 조건;
ex) amount 칼럼 중 최솟값 찾기
(1) 쿼리문
SELECT MIN(amount) FORM account;
(2) 실행 결과
ex) type 칼럼 데이터에서 '지출' 중 amount 최솟값 찾기
(1) 쿼리문
SELECT MIN(amount) FROM account WHERE type = '지출';
(2) 실행 결과
조건 함수
1. 조건 함수의 개념
- 특정 조건에 해당하는 경우 결과값을 출력하는 함수
2. 조건 함수의 형식
구조 - IF(조건, 참일 경우 결과, 거짓 경우 결과)
3. 조건 함수의 예
ex) amount가 100과 같거나 클 경우 '높은 금액'으로 표시하고 적을 경우 '낮은 금액'으로 표시할 경우
1) 쿼리문
SELECT IF(amount >= 100, '높은 금액', '낮은 금액'),
amount FROM account;
2) 실행 결과
ex) 전체 수입에서 지출을 차감하는 계산을 IF 함수로 구현할 경우
1) 쿼리문
SELECT SUM( IF(type = '수이', amount, 0)
- IF(type = '지출', amount, 0)) FROM account;
2) 실행 결과
GROUP BY절
1. GROUP BY절의 개념
- 특정 칼럼을 기준으로 집계 함수를 사용한 건수(COUNT), 합계(SUM), 평균(AVG) 등 결과에 대하여 그룹핑 하는 함수
- 칼럼 내용 중 같은 값을 하나의 그룹으로 처리함
2. GROUP BY 절의 형식
SELECT 기준칼럼, 집계함수(칼럼) FROM 테이블 GROUP BY 기준칼럼;
3. GROUP BY 적용 예시
ex) type 칼럼을 기준으로 수입, 지출의 합계를 구하고자 할 겨웅
1) 쿼리문
SELECT type, SUM(amount) FORM account GROUP BY type;
2) 실행 결과