[oracle] Function - 다중행 함수(집계 함수)

재현·2024년 6월 10일
post-thumbnail

🔍 함수

✍ 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특별한 명령어, 크게 내장형 함수사용자 정의 함수 로 나뉜다.

✍ 내장 함수 : 오라클 내부에서 기본으로 제공하는 함수, 단일행 함수와, 다중행 함수 로 나뉜다.
✍ 단일행 함수(Single-row-function) : 데이터가 한 행씩 입력되고, 입력된 각 행별로 결과가 하나씩 나오는 함수
✍ 다중행 함수(Multiple-row-function): 여러 행이 입력되어, 하나의 행으로 결과가 반환되는 함수

✍ 이 글에선 오라클에서 제공하는 내장 함수 중 다중행 함수를 알아보도록 하겠습니다.

✍ COUNT(*)를 제외한 모든 그룹 함수는 열에 있는 Null 값을 무시합니다.

🔍 AVG 함수

✍ 평균 값을 구하는 함수

AVG([DISTINCT, ALL 중 하나 선택(선택) - default ALL]
    [평균값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)   
-- 그룹 함수
-- AVG, MAX, MIN, SUM, COUNT = NULL은 제외
SELECT AVG(SALARY)
FROM EMPLOYEES
WHERE JOB_ID LIKE 'SA%';

🔍 SUM 함수

✍ 합계를 구하는 함수

SUM([DISTINCT, ALL 중 하나 선택(선택) - default ALL]
    [합계를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
SELECT SUM(SALARY)
FROM EMPLOYEES
WHERE JOB_ID LIKE 'SA%';

🔍 MIN, MAX 함수

✍ 최솟값과 최댓값을 구하는 함수

MIN([DISTINCT, ALL 중 하나 선택(선택) - default ALL]
    [최솟값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)

MAX([DISTINCT, ALL 중 하나 선택(선택) - default ALL]
    [최댓값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
SELECT MAX(SALARY), MIN(SALARY)
FROM EMPLOYEES
WHERE JOB_ID LIKE 'SA%';

SELECT MIN(HIRE_DATE), MAX(HIRE_DATE)
FROM EMPLOYEES;

🔍 COUNT 함수

✍ 데이터의 개수를 구하는 함수

COUNT([DISTINCT, ALL 중 하나 선택(선택) - default ALL]
    [개수를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
SELECT COUNT(*) FROM EMPLOYEES;

SELECT COUNT(COMMISSION_PCT) FROM EMPLOYEES;

SELECT COUNT(*) FROM EMPLOYEES WHERE COMMISSION_PCT IS NOT NULL;

🔍 STDDEV, VARIANCE 함수

✍ 표준편차, 분산을 구하는 함수

STDDEV([DISTINCT, ALL 중 하나 선택(선택) - default ALL]
    [표준편차를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
VARIANCE([DISTINCT, ALL 중 하나 선택(선택) - default ALL]
    [분산을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
SELECT SUM(SALARY) AS 합계,
    ROUND(AVG(SALARY), 2) AS 평균,
    ROUND(STDDEV(SALARY), 2) AS 표준편차, -- 분산의 제곱근
    ROUND(VARIANCE(SALARY), 2) AS 분산 -- 평균과 데이터의 차이를 제곱하여 평균
FROM EMPLOYEES;

SELECT ROUND(STDDEV(SALARY), 2) AS 표준편차, -- 분산의 제곱근
    ROUND(STDDEV_SAMP(SALARY), 2) AS 표본표준편차, -- 평균과 데이터의 차이를 제곱
    ROUND(STDDEV_POP(SALARY), 2) AS 모표준편차 -- 평균과 데이터의 차이를 제곱
FROM EMPLOYEES;

📖 reference

https://earth-95.tistory.com/155
https://statwith.tistory.com/2957
인프런 오라클 데이터베이스 강의

profile
운동과 코딩

0개의 댓글