DB/SQL

DB에서 쓰이는 함수들

peanutwalnut 2025. 2. 22. 13:18

집계 함수 (Aggregate Functions)

  • 목적:
    여러 행에 걸쳐 계산을 수행해 하나의 결과(또는 소수의 결과)를 도출합니다.
  • 예시 및 설명:
    • SUM(), AVG(), MIN(), MAX(), COUNT()
      • 특정 컬럼의 합계, 평균, 최소/최대 값, 또는 행의 개수를 구할 때 사용됩니다.
      • 주로 GROUP BY와 함께 사용하여 그룹별 통계 정보를 산출합니다.

 

스칼라 함수 (Scalar Functions)

  • 목적:
    각 행마다 단일 값을 반환하며, 입력 값에 대해 변환, 계산 또는 조작을 수행합니다.
  • 예시 및 설명:
    • 수학 함수: ABS(), ROUND(), CEIL(), FLOOR() 등
      • 숫자 값의 절대값, 반올림, 올림, 내림 등 계산에 사용됩니다.
    • 문자열 함수: UPPER(), LOWER(), SUBSTR(), CONCAT(), LENGTH() 등
      • 문자열의 대소문자 변환, 부분 문자열 추출, 문자열 결합, 길이 계산 등을 수행합니다.
    • 날짜/시간 함수: NOW(), CURDATE(), DATEADD(), DATEDIFF() 등
      • 현재 시간 조회, 날짜 계산, 두 날짜 간 차이 계산 등 날짜와 시간 관련 작업에 활용됩니다.

 

 

윈도우 함수 (Window Functions)

  • 목적:
    집계 함수와 비슷한 계산을 수행하지만, 원본 행을 유지하면서 각 행에 대해 결과를 부여합니다.
  • 예시 및 설명:
    • 순위 함수: ROW_NUMBER(), RANK(), DENSE_RANK()
      • 각 행에 순번이나 순위를 매깁니다.
    • 값 비교 함수: LAG(), LEAD()
      • 현재 행과 이전 또는 이후 행의 값을 참조할 때 사용됩니다.
    • 누적 함수: 윈도우 내 SUM(), AVG() 등
      • 예를 들어, 누적 합계를 구할 때 사용되며, 각 행별로 계산 결과가 반환됩니다.
  • 특징:
    OVER 절을 사용하여 계산 범위(윈도우)를 정의하며, PARTITION BY와 ORDER BY를 통해 데이터 그룹 및 순서를 지정할 수 있습니다.

 

조건 함수 (Conditional Functions)

  • 목적:
    조건에 따라 결과를 선택하거나 대체값을 제공하는 함수입니다.
  • 예시 및 설명:
    • CASE 문:
      • 조건별로 서로 다른 값을 반환할 수 있도록 복잡한 조건 로직을 구현할 때 사용됩니다.
    • COALESCE(), NVL(), IFNULL():
      • NULL 값을 다른 값으로 대체하는 데 사용되며, 여러 인자 중 첫 번째 NULL이 아닌 값을 반환합니다.

 

변환 함수 (Conversion Functions)

  • 목적:
    데이터 형식을 다른 형식으로 변환하는 역할을 합니다.
  • 예시 및 설명:
    • CAST(), CONVERT():
      • 숫자, 문자열, 날짜 등 서로 다른 데이터 형식 간의 변환을 수행합니다.
    • TO_CHAR(), TO_DATE():
      • 특히 날짜와 시간을 문자열로 또는 문자열을 날짜/시간으로 변환할 때 자주 사용됩니다.