DB/SQL
DB에서 쓰이는 함수들
peanutwalnut
2025. 2. 22. 13:18
집계 함수 (Aggregate Functions)
- 목적:
여러 행에 걸쳐 계산을 수행해 하나의 결과(또는 소수의 결과)를 도출합니다. - 예시 및 설명:
- SUM(), AVG(), MIN(), MAX(), COUNT()
- 특정 컬럼의 합계, 평균, 최소/최대 값, 또는 행의 개수를 구할 때 사용됩니다.
- 주로 GROUP BY와 함께 사용하여 그룹별 통계 정보를 산출합니다.
- SUM(), AVG(), MIN(), MAX(), COUNT()
스칼라 함수 (Scalar Functions)
- 목적:
각 행마다 단일 값을 반환하며, 입력 값에 대해 변환, 계산 또는 조작을 수행합니다. - 예시 및 설명:
- 수학 함수: ABS(), ROUND(), CEIL(), FLOOR() 등
- 숫자 값의 절대값, 반올림, 올림, 내림 등 계산에 사용됩니다.
- 문자열 함수: UPPER(), LOWER(), SUBSTR(), CONCAT(), LENGTH() 등
- 문자열의 대소문자 변환, 부분 문자열 추출, 문자열 결합, 길이 계산 등을 수행합니다.
- 날짜/시간 함수: NOW(), CURDATE(), DATEADD(), DATEDIFF() 등
- 현재 시간 조회, 날짜 계산, 두 날짜 간 차이 계산 등 날짜와 시간 관련 작업에 활용됩니다.
- 수학 함수: ABS(), ROUND(), CEIL(), FLOOR() 등
윈도우 함수 (Window Functions)
- 목적:
집계 함수와 비슷한 계산을 수행하지만, 원본 행을 유지하면서 각 행에 대해 결과를 부여합니다. - 예시 및 설명:
- 순위 함수: ROW_NUMBER(), RANK(), DENSE_RANK()
- 각 행에 순번이나 순위를 매깁니다.
- 값 비교 함수: LAG(), LEAD()
- 현재 행과 이전 또는 이후 행의 값을 참조할 때 사용됩니다.
- 누적 함수: 윈도우 내 SUM(), AVG() 등
- 예를 들어, 누적 합계를 구할 때 사용되며, 각 행별로 계산 결과가 반환됩니다.
- 순위 함수: ROW_NUMBER(), RANK(), DENSE_RANK()
- 특징:
OVER 절을 사용하여 계산 범위(윈도우)를 정의하며, PARTITION BY와 ORDER BY를 통해 데이터 그룹 및 순서를 지정할 수 있습니다.
조건 함수 (Conditional Functions)
- 목적:
조건에 따라 결과를 선택하거나 대체값을 제공하는 함수입니다. - 예시 및 설명:
- CASE 문:
- 조건별로 서로 다른 값을 반환할 수 있도록 복잡한 조건 로직을 구현할 때 사용됩니다.
- COALESCE(), NVL(), IFNULL():
- NULL 값을 다른 값으로 대체하는 데 사용되며, 여러 인자 중 첫 번째 NULL이 아닌 값을 반환합니다.
- CASE 문:
변환 함수 (Conversion Functions)
- 목적:
데이터 형식을 다른 형식으로 변환하는 역할을 합니다. - 예시 및 설명:
- CAST(), CONVERT():
- 숫자, 문자열, 날짜 등 서로 다른 데이터 형식 간의 변환을 수행합니다.
- TO_CHAR(), TO_DATE():
- 특히 날짜와 시간을 문자열로 또는 문자열을 날짜/시간으로 변환할 때 자주 사용됩니다.
- CAST(), CONVERT():