Oracle Database 강좌/2. SQL 기본 문법

SQL 함수: 단일행 함수, 다중행 함수, 그룹 함수 등

_Blue_Sky_ 2024. 10. 7. 11:28
728x90
728x90

SQL 함수: 데이터 분석의 핵심 도구

 SQL(Structured Query Language)은 데이터베이스를 관리하고 조작하는 데 사용되는 표준 쿼리 언어입니다. SQL 함수는 데이터를 다양하게 처리하고 분석하는 데 필수적인 도구입니다. 이 글에서는 SQL 함수의 종류와 각 함수의 특징, 그리고 실제 사용 예시를 통해 SQL 함수를 더욱 깊이 이해하도록 돕겠습니다.

1. 단일 행 함수 (Single-row Functions)

단일 행 함수는 각 행의 개별 데이터를 입력받아 하나의 결과값을 반환합니다. 즉, 각 행에 대해 독립적으로 함수가 적용됩니다.

  • 문자 함수 (Character Functions): 문자열을 다루는 함수입니다.
    • UPPER, LOWER: 문자열을 대문자 또는 소문자로 변환
    • CONCAT: 두 개 이상의 문자열을 연결
    • SUBSTR: 문자열의 특정 부분 추출
    • LENGTH: 문자열의 길이 계산
  • 숫자 함수 (Numeric Functions): 숫자를 다루는 함수입니다.
    • ROUND: 숫자를 반올림
    • TRUNC: 숫자를 버림
    • MOD: 나머지 값 계산
    • SQRT: 제곱근 계산
  • 날짜 함수 (Date Functions): 날짜와 시간을 다루는 함수입니다.
    • SYSDATE: 현재 날짜와 시간 반환
    • ADD_MONTHS: 날짜에 특정 개월 수 더하거나 빼기
    • TO_CHAR: 날짜를 특정 형식의 문자열로 변환
  • NULL 처리 함수 (NULL-value Functions): NULL 값을 처리하는 함수입니다.
    • NVL: NULL 값을 다른 값으로 대체

예시:

SELECT UPPER(name), ROUND(salary, 2)
FROM employees;
 

위 쿼리는 employees 테이블의 name 열을 대문자로 변환하고, salary 열을 소수점 둘째 자리까지 반올림하여 결과를 출력합니다.

728x90

2. 다중 행 함수 (Multi-row Functions)

다중 행 함수는 여러 행의 데이터를 입력받아 하나의 결과값을 반환합니다. 즉, 여러 행에 대한 집계를 수행합니다.

  • 집계 함수 (Aggregate Functions):
    • COUNT: 행의 개수 세기
    • SUM: 숫자 값의 합 계산
    • AVG: 평균 계산
    • MAX, MIN: 최댓값, 최솟값 계산

예시:

SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id;
 

위 쿼리는 employees 테이블을 department_id별로 그룹화하고, 각 그룹의 평균 salary를 계산하여 출력합니다.

3. 그룹 함수 (Group Functions)

그룹 함수는 다중 행 함수의 일종으로, 데이터를 그룹으로 나누어 각 그룹에 대한 집계를 수행합니다. GROUP BY 절과 함께 사용됩니다.

예시: (위의 다중 행 함수 예시와 동일)

4. 분석 함수 (Analytic Functions)

분석 함수는 행별로 계산된 값을 기반으로 다른 행의 값을 계산하는 함수입니다.

  • RANK, DENSE_RANK, ROW_NUMBER: 행에 순위를 부여
  • LAG, LEAD: 현재 행의 앞뒤 행의 값 참조
  • RATIO_TO_REPORT: 전체 합계 대비 각 행의 비율 계산

예시:

SELECT employee_id, salary, 
       RANK() OVER (ORDER BY salary DESC) AS salary_rank
FROM employees;
 

위 쿼리는 employees 테이블에서 salary를 기준으로 내림차순으로 정렬하여 각 직원의 salary 순위를 계산합니다.

결론

SQL 함수는 데이터 분석에 있어 매우 강력한 도구입니다. 단일 행 함수, 다중 행 함수, 분석 함수 등 다양한 종류의 함수를 적절히 활용하여 복잡한 데이터를 효과적으로 처리하고 의미 있는 정보를 추출할 수 있습니다.

 

728x90
728x90