목차
집계 함수(Aggregate Function)
- 집계함수는 특정 컬럼의 합계, 평균, 최댓값 등 통계를 내주는 함수입니다.
- 집계함수는 한 컬럼에 대해서 적용됩니다.
- AS를 통해서 새로운 컬럼명으로 지정이 가능합니다.
- 지정해주지 않을 경우 SUM(사용금액) 처럼 컬럼명이 그대로 지정됩니다.
-
SELECT SUM(사용금액) FROM card
-
- AS로 새롭게 컬럼명을 지정한 경우
-
SELECT SUM(사용금액) AS 합계 FROM card
-
- 지정해주지 않을 경우 SUM(사용금액) 처럼 컬럼명이 그대로 지정됩니다.
MAX(컬럼명)
-
SELECT MAX(컬럼명) FROM 테이블명
- 예시
- 기본 출력
-
SELECT 사용금액 FROM card
-
- MAX(컬럼명)
-
SELECT MAX(사용금액) FROM card
-
- 기본 출력
MIN(컬럼명)
-
SELECT MIN(컬럼명) FROM 테이블명
AVG(컬럼명)
-
SELECT AVG(컬럼명) FROM 테이블명
SUM(컬럼명)
-
SELECT SUM(컬럼명) FROM 테이블명
COUNT(컬럼명)
-
SELECT COUNT(컬럼명) FROM 테이블명
- 해당 컬럼이 NOT NULL인 ROW의 수만 셉니다.
-
SELECT COUNT(*) FROM 테이블명
- 테이블의 모든 ROW를 셉니다.(NULL인 값도 포함해서 COUNT)
-
SELECT COUNT(DISTINCT 컬럼명) FROM 테이블명
- 지정된 컬럼에 대해 중복을 제거한 ROW수를 셉니다.
- 예시
- card 테이블
-
SELECT COUNT(DISTINCT 고객등급,연체횟수) FROM card; SELECT COUNT(DISTINCT 고객등급) FROM card; SELECT COUNT(DISTINCT 연체횟수) FROM card;
- 순서대로 10, 3 , 8 의 결과를 가집니다.
- card 테이블
예제
- 고객 등급이 vip 인 사람들만 통계내기(등급이 vip 인 사람들의 평균 사용 금액)) ( 일부 행만 골라서 통계내기 가능 )
-
SELECT AVG(사용금액) FROM card WHERE 고객등급='vip'
-
- 중복되지 않는 연체 횟수값들의 평균을 구하기 (DISTINCT사용)
-
SELECT AVG(DISTINCT 연체 횟수) FROM card
-
- MAX MIN 안 쓰고 최대, 최소 구해보기. (ORDER BY와 LIMIT 1 사용)
- 정렬하기 ORDER BY (일부상황에서는 MIN MAX 쓰는 거보다 이게 훨씬 더 빠를 수가 있음 )
- MAX
-
SELECT 사용금액 FROM card ORDER BY 사용금액 DESC LIMIT 1
-
- MIN
-
SELECT 사용금액 FROM card ORDER BY 사용금액 ASC LIMIT 1
-
- 최대 결제 횟수와 최소 결제 횟수를 출력하기
-
SELECT MAX(결제횟수) AS 최대 , MIN(결제횟수) AS 최소 FROM card
-
- 고객등급이 vip인 사람들의 '평균 결제횟수'와 고객등급이 vip인 사람들의 '사용금액 총 합계'를 구해보기
-
SELECT AVG(결제횟수) AS '평균 결제횟수',SUM(사용금액) AS '사용금액 총 합계' FROM card WHERE 고객등급='vip'
-
- 연체횟수가 1회 이하인 사람은 몇 명일까요?
-
SELECT count(*) FROM card WHERE 연체횟수<=1
-
출처
'Database > MySQL' 카테고리의 다른 글
select 안에 select (서브쿼리) (1) | 2024.03.01 |
---|---|
컬럼 출력시 사칙연산 넣기 / 문자,숫자 다루는 함수 (1) | 2024.02.29 |
WHERE로 데이터 필터링하기 (1) | 2024.02.27 |
데이터 출력 / 정렬 (SELECT / ORDER BY) (0) | 2024.02.27 |
(데이터베이스)테이블 생성,삭제(Data Type) / 데이터 삽입, 수정, 삭제 (0) | 2024.02.27 |