데이타베이스/SQL

SQL에서의 함수 및 연산자 활용: 데이터 분석을 위한 종합 가이드

shimdh 2025. 1. 28. 11:42
728x90

1. 집계 함수: 데이터를 요약하는 도구

집계 함수는 데이터베이스의 여러 행을 하나의 값으로 요약하는 데 사용됩니다. 데이터를 요약하고, 통계적으로 분석하며, 의사결정에 유용한 인사이트를 제공하는 데 도움을 줍니다.

주요 집계 함수

SUM(): 합계 계산

SELECT SUM(salary) AS total_salary FROM employees;
  • 모든 직원의 급여 합계를 계산합니다. 이는 조직의 총 인건비를 파악하는 데 유용합니다.

AVG(): 평균 계산

SELECT AVG(age) AS average_age FROM students;
  • 학생들의 평균 나이를 계산하여 그룹의 평균적인 특성을 파악합니다.

COUNT(): 행 개수 세기

SELECT COUNT(*) AS number_of_employees FROM employees WHERE department = 'Sales';
  • 특정 조건을 만족하는 데이터의 개수를 계산합니다. 이는 특정 그룹의 크기를 파악하는 데 필수적입니다.

GROUP BY와 함께 사용하기

GROUP BY를 활용하면 데이터를 그룹별로 요약할 수 있습니다. 이는 각 그룹의 특성을 파악하거나 비교할 때 유용합니다.

SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department;
  • 각 부서의 직원 수를 계산합니다. 이는 자원 분배와 부서 간 비교에 도움을 줍니다.

HAVING으로 결과 필터링하기

HAVING 절은 그룹화된 데이터에 조건을 적용할 때 사용됩니다.

SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
  • 평균 급여가 일정 금액 이상인 부서를 필터링합니다. 이는 고소득 부서를 식별하는 데 유용합니다.

2. 문자열 함수: 텍스트 데이터 처리

문자열 함수는 텍스트 데이터를 변환하고 조작하며, 특정 부분을 추출하는 데 사용됩니다. 고객 데이터, 이메일 주소, 제품 정보 등 다양한 텍스트 기반 데이터에 적용됩니다.

주요 문자열 함수

CONCAT: 문자열 결합

SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM customers;
  • 고객의 이름과 성을 결합하여 전체 이름을 생성합니다.

SUBSTRING: 문자열 추출

SELECT SUBSTRING(email, LOCATE('@', email) + 1) AS domain FROM users;
  • 이메일 주소에서 도메인 부분을 추출합니다. 이는 특정 도메인을 기반으로 사용자 그룹을 분류할 때 유용합니다.

기타 문자열 함수

  • LENGTH(): 문자열 길이를 반환합니다.
    SELECT LENGTH(first_name) AS name_length FROM customers;
  • UPPER()/LOWER(): 대문자나 소문자로 변환합니다.
    SELECT UPPER(first_name) AS upper_case_name FROM customers;
  • TRIM(): 공백을 제거합니다.
    SELECT TRIM(both ' ' FROM first_name) AS trimmed_name FROM customers;
  • REPLACE(): 특정 문자열을 다른 문자열로 바꿉니다.
    SELECT REPLACE(email, '.com', '.org') AS updated_email FROM users;

3. 수치 함수: 숫자 데이터 조작

수치 함수는 숫자 데이터를 변환하거나 계산하는 데 사용됩니다. 이는 재무 분석, 과학적 계산, 데이터 변환 등 다양한 용도로 활용됩니다.

주요 수치 함수

ROUND(): 반올림

SELECT ROUND(123.4567, 2) AS RoundedValue;
  • 소수점 두 자리까지 반올림합니다. 금융 데이터의 정밀도를 유지하면서 단순화할 때 사용됩니다.

FLOOR(): 내림

SELECT FLOOR(123.4567) AS FloorValue;
  • 주어진 값보다 작거나 같은 가장 큰 정수를 반환합니다. 최소값을 설정하거나 범위를 제한할 때 유용합니다.

CEILING(): 올림

SELECT CEILING(123.4567) AS CeilingValue;
  • 주어진 값보다 크거나 같은 가장 작은 정수를 반환합니다. 최대값 계산에 사용됩니다.

ABS(): 절대값

SELECT ABS(-10) AS AbsoluteValue;
  • 숫자의 절대값을 반환합니다. 부호와 관계없이 값의 크기를 비교할 때 유용합니다.

4. 날짜 함수: 시간 데이터 처리

날짜 함수는 시간 데이터를 조작하고 계산하며, 이벤트 기반 분석에 필수적입니다. 프로젝트 일정 관리, 이벤트 추적, 시간 경과 분석 등 다양한 상황에 활용됩니다.

주요 날짜 함수

DATEADD(): 날짜 계산

SELECT DATEADD(day, 10, GETDATE()) AS NewDate;
  • 현재 날짜에 10일을 더한 결과를 반환합니다. 이 함수는 프로젝트 마감일 계산에 자주 사용됩니다.

DATEDIFF(): 날짜 차이 계산

SELECT DATEDIFF(day, '2023-01-01', GETDATE()) AS DaysPassed;
  • 두 날짜 사이의 차이를 계산합니다. 프로젝트 진행 상황을 추적하거나 이벤트 간의 경과 시간을 분석할 때 유용합니다.

실생활 적용 사례

  • 프로젝트 관리: 프로젝트 기간 계산
    SELECT ProjectName, DATEDIFF(day, StartDate, EndDate) AS DurationInDays FROM Projects;
  • 고객 분석: 고객 가입 후 경과 기간 추적
    SELECT CustomerID, DATEDIFF(month, SignupDate, GETDATE()) AS MonthsSinceSignup FROM Customers;

결론

SQL의 함수와 연산자는 데이터를 효율적으로 처리하고 분석하는 데 필수적인 도구입니다. 집계 함수로 데이터를 요약하고, 문자열 함수로 텍스트를 조작하며, 수치와 날짜 함수를 활용하여 정밀한 분석과 처리가 가능합니다. 이러한 도구를 효과적으로 활용하면 데이터 기반 의사결정의 품질을 높이고, 복잡한 문제를 간단히 해결할 수 있습니다.

728x90