DB/Oracle

[Oracle] Oracle Function(오라클 함수) - 다중행 함수(집계 함수)

EARTH_ROOPRETELCHAM 2022. 5. 8. 12:10
728x90
반응형

들어가기 전에

이 포스팅은 오라클로 배우는 데이터베이스 입문(이지훈 저)을 읽으면서 기억하고자 하는 내용 및 추가적으로 알아본 내용을 담았습니다. 책 전체 내용을 보시고 싶으신 분은 책을 구매하시어 읽어보시길 바랍니다.

오라클 함수

오라클 함수란, 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어를 의미합니다. 오라클 함수는 함수를 제작한 주체를 기준으로 크게 2가지로 나뉩니다.

  • 내장 함수(built-in function): 오라클에서 기본으로 제공하고 있는 함수
    • 내장 함수는 입력 방식에 따라 데이터 처리에 사용하는 행이 나뉩니다.
    • 단일행 함수(single-row function): 데이터가 한 행씩 입력되고, 입력된 각 행별로 결과가 하나씩 나오는 함수
    • 다중행 함수(multiple-row function): 여러 행이 입력되어 하나의 행으로 결과가 반환되는 함수
  • 사용자 정의 함수(user-defined function): 사용자가 필요에 의해 직접 정의한 함수

단일행 함수와 다중행 함수(오라클로 배우는 데이터베이스 입문, 129p)

이번 시간에는 Oracle에서 제공하는 내장 함수 중 다중행 함수들에 대해 알아보도록 하겠습니다.

다중행 함수 예시

  • 다중행 함수는 위 SUM() 함수의 예시에서 볼 수 있듯이 조회를 했을 때 각 레코드별로 결과가 하나씩 생기지 않고, 하나의 행으로 결과가 반환됩니다.
  • 이러한 특징때문에 다중행 함수를 사용한 SELECT절에는 기본적으로 여러 행이 결과로 나올 수 있는 열을 함께 사용할 수 없습니다.

합계를 구하는 SUM 함수

SUM([DISTINCT, ALL 중 하나 선택(선택) - default ALL]
    [합계를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])

SUM 함수 사용 예시

  • SUM 함수의 옵션을 DISTINCT로 주면, 중복 데이터가 제거되어 동일한 데이터는 합계에서 한 번만 더해집니다.

데이터 개수를 구하는 COUNT 함수

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

COUNT 함수 사용 예시

  • 위 예시에서 볼 수 있듯이 SELECT문을 통해 조회한 데이터의 개수를 구하고자 할 경우에는 COUNT(*)로 사용할 수 있습니다(첫 번째 예시).
    • COUNT(*)를 이용하면, 특정 회원이 작성한 글 수, 댓글 수 등을 알 수 있어 등업 여부를 확인하는 데 사용할 수 있습니다.
  • NULL 데이터는 COUNT 함수의 반환 개수에서 제외됩니다(두 번째 예시).

최댓값과 최솟값을 구하는 MAX, MIN 함수

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

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

MAX 함수, MIN 함수 사용 예시

  • 사실상, 최댓값과 최솟값은 중복 제거에 영향을 받지 않기 때문에 DISTINCTALL을 따로 사용하지 않습니다.
  • 숫자 데이터의 최댓값, 최솟값 뿐 아니라 날짜 데이터와 문자 데이터의 MIN, MAX 값을 구할 수 있습니다.

평균 값을 구하는 AVG 함수

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

AVG 함수 사용 예시

참고 자료

  • 오라클로 배우는 데이터베이스 입문(이지훈 저)
728x90
반응형