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
'Oracle Database 강좌 > 2. SQL 기본 문법' 카테고리의 다른 글
데이터 제어 언어 (DCL): GRANT, REVOKE 등 (0) | 2024.10.07 |
---|---|
데이터 조작 언어 (DML): SELECT, INSERT, UPDATE, DELETE 등 (0) | 2024.10.07 |
데이터 정의 언어 (DDL): CREATE TABLE, ALTER TABLE, DROP TABLE 등 (0) | 2024.10.07 |
SQL이란 무엇인가요? SQL의 정의와 역할 (0) | 2024.10.06 |