집계함수 : 대상 데이터에서 특정 그룹으로 묶어 그 그룹에 대해 총합, 평균, 최댓값, 최솟값 등을 구하는 함수
1. COUNT : row의 건수 집계, 조건을 줘서 각 조건에 맞는 행의 갯수를 알아낼 때 많이 쓰인다. 페이지를 만들 때도 필요하다.
SELECT COUNT(*) -- null 포함한 전체 row의 갯수
,COUNT(ALL column명) -- defalut ALL = null을 포함하지 않는다.
,COUNT(column명) -- 위와 동일하다
,COUNT(distinct column) -- 중복 제거
FROM 테이블명 ;
위의 규칙에 따라 employees 테이블을 조회해 보았다.
SELECT COUNT(*)
,COUNT(ALL department_id)
,COUNT(department_id)
,COUNT(distinct department_id )
FROM employees;
위의 결과는 아래와 같다.
COUNT(ALL column명)와 COUNT(column명)은 null이 제거되어 106개이다.
그리고 department_id의 중복을 제거한 갯수는 11개임을 알 수 있다.
2. SUM : row의 값을 모두 합친다.
SELECT sum(column명)
FROM 테이블명;
sum을 가지고 직원 테이블의 월급을 모두 더한 값을 알아내려고 할 때 쿼리문과 그 결과는 아래와 같다.
SELECT sum(salary)
FROM employees;
3. AVG : row의 값을 집계하여 평균을 낸다.
SELECT AVG(column명)
FROM 테이블명;
AVG를 이용하여 member테이블의 평균 마일리지 값을 알아내려면 아래와 같이 쿼리를 짜면 된다.
SELECT AVG(mem_mileage)
,ROUND(AVG(mem_mileage),2)
FROM member;
위의 쿼리문을 실행하면 아래와 같다. 두 번째는 ROUND을 사용해서 소수점 2이하는 제거하였다.
4. MAX, MIN : row의 전체 값에서 최대값이나 최소값을 구한다.
SELECT min(column명)
,max(column명)
FROM 테이블명;
직원 테이블에서 가장 높은 월급과 가장 낮은 월급을 구하려고 할 때 쿼리문과 그 결과는 아래와 같다.
SELECT min(salary)
,max(salary)
FROM employees;
이러한 집계함수를 이용하여 개발 부서의 직원 수와 평균, 최소, 최대, 급여를 출력해보자!
SELECT count(employee_id) as 직원수
,ROUND(avg(salary),2) as 평균급여
,min(salary) as 최소급여
,max(salary) as 최대급여
FROM employees
where department_id = '개발팀';
위의 쿼리문을 실행하면 아래와 같이 출력된다.
'DB' 카테고리의 다른 글
SQL : Oracle 테이블 제약 조건 조회 (0) | 2023.04.13 |
---|---|
!= 과 <> 의 차이와 ANSI SQL (0) | 2022.11.22 |
오라클 : 문자 변환함수 TO_CHAR (0) | 2022.08.12 |
오라클 : 글자를 자르거나 바꿔주는 함수 TRIM, SUBSTR, REPLACE (0) | 2022.08.10 |
오라클 : 문자 함수로 대소문자 처리하기 : LOWER, UPPER, INITCAP (0) | 2022.08.09 |
댓글