ki-sd 님의 블로그
[2026-04-15] 내장 함수, 집계, 그리고 데이터 통계 분석 본문
오라클이 제공하는 강력한 내장 함수 라이브러리를 통해 원시 데이터를 가공하고, 비즈니스 인사이트를 도출하기 위한 통계(그룹화) 로직을 설계했다.
1. 단일 행 함수(Single-Row Function)의 활용
- 문자/숫자/날짜: SUBSTR(문자열 자르기), UPPER(대문자 변환), ROUND(반올림), SYSDATE(현재 서버 시간) 등을 활용해 출력 포맷을 자유자재로 조작했다.
- 형변환과 NULL 처리: 날짜나 숫자를 원하는 포맷의 문자로 바꾸는 TO_CHAR의 위력을 실습했다. 또한 NULL 데이터와 산술 연산을 하면 결과가 무조건 NULL이 되는 오류를 막기 위해, NVL(컬럼, 대체값) 함수를 씌워 0 등 다른 값으로 치환하는 필수 방어 로직을 습득했다.
- 조건 분기: 자바의 switch나 if문 역할을 하는 오라클 전용 함수 DECODE와, 표준 문법인 CASE WHEN THEN 구문을 이용해 쿼리 안에서 즉각적으로 데이터를 치환 및 분기하는 실전 테크닉을 익혔다.
2. 집계 함수와 그룹화 (GROUP BY / HAVING)
- SUM, AVG, MAX, COUNT 등의 집계 함수는 여러 행을 입력받아 단 하나의 결과를 반환한다.
- 전체 데이터가 아닌 부서별, 직급별 평균 급여를 구하기 위해 GROUP BY 절을 사용했다.
- WHERE vs HAVING: WHERE 절은 그룹화하기 '전'에 개별 행을 필터링하고, HAVING 절은 그룹화가 완료된 '후'의 집계 결과(예: 평균 급여가 300 이상인 부서만)를 필터링한다는 실행 순서의 결정적 차이를 100여 개의 샘플 데이터를 조작하며 완벽히 체득했다.
'OracleStudy' 카테고리의 다른 글
| [2026-04-17] 테이블 설계(DDL)와 제약조건, 그리고 CRUD 실무 구현 (0) | 2026.04.18 |
|---|---|
| [2026-04-16] 관계형 데이터의 완성, JOIN과 SubQuery (0) | 2026.04.18 |
| [2026-04-14] 조건부 필터링(WHERE)과 데이터 정렬(ORDER BY) 심화 (0) | 2026.04.18 |
| [2026-04-13] RDBMS의 아키텍처와 관계형 모델의 핵심 요소 (0) | 2026.04.18 |
| [2026-04-10] 오라클 데이터베이스 입문과 데이터 중심적 사고 (1) | 2026.04.17 |
