SQL 함수,,,2

강희철·2022년 1월 7일
0

SQL

목록 보기
5/9

그룹함수

- 그룹함수란 단일 행 함수와 달리 여러 행에 대해 함수가 적용되어 하나의 결과를 나타내는 함수.

- 아직 배우진 않았지만 group by 절과는 다르다. group by 절은 여러 행을 그룹화하는 것이지만 그룹 함수는 단일 행에 대해서 결과를 내주는 것이다.

SELECT 그룹 함수 () FROM 테이블 [WHERE 조건식] 
- 그룹 함수의 종류
함수 설명
COUNT 행 개수를 셈 COUNT ( salary )
SUM 합계 SUM ( salary )
AVG 평균 AVG ( salary )
MAX 최댓값 MAX ( salary )
MIN 최솟값 MIN ( salary )

그룹함수들을 예제로 알아보자

예제 테이블 ( user )
index name level salary
1 홍길동 3 600
2 고길동 5 300
3 아무개 3 200
4 루피 7 900
5 이기영 5 450
6 호빵맨 4 170
7 세균맨 4 1300

COUNT ( ) 행의 개수를 구함

select count (*) as '행의 개수' from user;
행의 개수
7

SUM ( ) 합계

select SUM (salary) as '합계' from user;
합계
3,920

AVG ( ) 합계

select AVG (salary) as '평균' from user;
평균
560

MAX ( ) 최댓값

select MAX (salary) as '최댓값' from user;
최댓값
1300

MIN ( ) 최댓값

select MIN (salary) as '최솟값' from user;
최댓값
170



! 그렇다면 위의 예제를 이용해서 조건에 해당하는 행들끼리의 그룹함수를 사용할 수 있다. 예제를 보자 ( 테이블 동일.. )

SELECT COUNT(*) as '행의 갯수' FROM user WHERE LEVEL = 3;
# level이 3인 행들의 COUNT( ) 함수를 사용
행의 갯수
2
SELECT SUM(salary) as '합계' FROM user WHERE LEVEL = 3;
# level이 3인 행들의 SUM( ) 함수를 사용
합계
800
SELECT SUM(salary) AS '합계', COUNT(salary) AS '개수', ROUND(AVG(salary)) AS '평균' FROM user WHERE LEVEL = 3;
# level이 3인 행들의 SUM( ), COUNT( ), AVG( ) 함수를 사용
합계 개수 평균
800 2 400
#AVG( )를 감싼 ROUND( ) 함수는 그룹함수가 아닌 반올림 역할을 해줍니다!!

0개의 댓글