hyeonga_code
Database_24_그룹 함수_AVG, SUM, MAX, MIN, COUNT 본문
-- SQL 함수
-- 그룹 함수
-- 행 집합에 작용하여 그룹 당 하나의 결과를 생성합니다.
/*
SELECT GROUP_FUNCTION ( 'column' ), ..
FROM 'table'
[ WHERE condition ]
-- 지정한 column 에 대해 그룹 함수를 적용합니다.
*/
-- 종류
-- 숫자 데이터에 사용할 수 있습니다.
-- AVG : 평균값
-- SUM : 총합
-- 모든 데이터 유형에 대해 사용할 수 있습니다.
-- MAX : 최고값
-- MIN : 최저값
-- COUNT : 테이블의 행 수를 반환합니다.
-- COUNT(*)
-- 특정 값을 지정하여 사용하는 경우 널 값은 제외됩니다.
-- COUNT(expr)
-- COUNT(DISTINCT expr) : 중복을 제거합니다.
-- 숫자형 : AVG, MAX, MIN, SUM
-- 특성
-- 그룹 함수는 해당 열의 널 값을 무시합니다.
-- 그룹 함수 + NVL 함수를 사용하는 경우 널 값을 포함하도록 강제합니다.
SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary)
FROM employees;
/*
AVG(salary) MAX(salary) MIN(salary) SUM(salary)
----------------------------------------------------------------------
8775 24000 2500 175500
*/
SELECT TRUNC(AVG(salary)), MAX(salary), MIN(salary), SUM(salary)
FROM employees
WHERE department_id IN(80, 90);
/*
AVG(salary) MAX(salary) MIN(salary) SUM(salary)
-------------------------------------------------------------------
14683 24000 8600 88100
*/
-- MAX/MIN : 숫자형이 아닌 데이터 형식도 가능합니다.
SELECT MAX(hire_date), MIN(last_name)
FROM employees;
/*
MAX(hire_date) MIN(last_name)
-----------------------------------------------
15/01/29 Abel
*/
-- COUNT
SELECT COUNT(*), COUNT(department_id),
COUNT(DISTINCT department_id),
COUNT(last_name)
FROM employees;
/*
COUNT(*) COUNT(...) COUNT(...) COUNT(...)
-------------------------------------------------------------------
20 19 7 20
*/
SELECT COUNT(commission_pct),
AVG(commission_pct),
AVG(NVL(commission_pct, 0))
FROM employees;
/*
COUNT(commission_pct) AVG(commission_pct) AVG(NVL(commission_pct, 0))
--------------------------------------------------------------------------------------------------------------
4 0.2125 0.03695652173913043478260
*/
SELECT MIN(salary), MAX(salary), TRUNC(STDDEV(salary))
FROM employees
WHERE department_id=90;
/*
MIN(salary) MAX(salary) TRUNC(STDDEV(salary))
----------------------------------------------------------
17000 24000 4041
*/
'Oracle Database' 카테고리의 다른 글
Database_26_ANSI JOIN_조인이 필요한 이유 (0) | 2023.07.29 |
---|---|
Database_25_그룹 함수_확장 연산자_CUBE, ROLLUP, GROUPING, GROUPING SETS (0) | 2023.07.28 |
Database_23_일반 함수_조건 표현식_CASE, DECODE (0) | 2023.07.26 |
Database_22_일반 함수_함수의 중첩 (0) | 2023.07.25 |
Database_21_일반 함수_NVL, NVL2, COALESCE (0) | 2023.07.24 |