데이터베이스/ORACLE

Oracle SQL 집계 함수 완벽 가이드: COUNT부터 LISTAGG까지!

CodeCaine Explorer 2024. 12. 20. 11:36
728x90
반응형
SMALL

Oracle에서 COUNT, SUM, AVG, MAX, MIN, GROUP_CONCAT() 사용법 😊

안녕하세요! 오늘은 Oracle SQL에서 자주 사용하는 집계 함수인 COUNT, SUM, AVG, MAX, MIN, 그리고 Oracle에서 GROUP_CONCAT()과 유사한 기능을 구현하는 방법을 다뤄볼게요. 초보 개발자도 쉽게 이해할 수 있도록 예제와 함께 친절히 설명드릴게요! 😊


1. COUNT(): 데이터 개수 세기

COUNT는 특정 조건에 맞는 데이터의 개수를 반환합니다.

사용 예제

SELECT COUNT(*) AS total_rows
FROM employees;

결과: employees 테이블의 모든 행 개수를 반환합니다.


2. SUM(): 합계 계산

SUM은 숫자 열의 합계를 계산합니다.

사용 예제

SELECT SUM(salary) AS total_salary
FROM employees
WHERE department_id = 10;

결과: department_id가 10인 직원들의 급여 총합을 반환합니다.


3. AVG(): 평균값 계산

AVG는 숫자 열의 평균값을 구합니다.

사용 예제

SELECT AVG(salary) AS avg_salary
FROM employees
WHERE job_id = 'IT_PROG';

결과: job_id가 'IT_PROG'인 직원들의 평균 급여를 반환합니다.


4. MAX(): 최대값 구하기

MAX는 열에서 가장 큰 값을 반환합니다.

사용 예제

SELECT MAX(salary) AS highest_salary
FROM employees;

결과: 모든 직원의 급여 중 최대값을 반환합니다.


5. MIN(): 최소값 구하기

MIN은 열에서 가장 작은 값을 반환합니다.

사용 예제

SELECT MIN(salary) AS lowest_salary
FROM employees;

결과: 모든 직원의 급여 중 최소값을 반환합니다.


6. GROUP_CONCAT() 대체: 문자열 합치기

Oracle에는 GROUP_CONCAT() 함수가 없지만, LISTAGG() 또는 WM_CONCAT()으로 동일한 기능을 구현할 수 있습니다.

예제: LISTAGG()

SELECT LISTAGG(employee_name, ', ') WITHIN GROUP (ORDER BY employee_name) AS employee_list
FROM employees
WHERE department_id = 10;

결과: department_id가 10인 직원들의 이름을 콤마로 연결한 문자열을 반환합니다.


7. GROUP BY와 함께 사용하기

집계 함수들은 보통 GROUP BY와 함께 사용됩니다.

예제: 부서별 평균 급여와 최대 급여 구하기

SELECT department_id, AVG(salary) AS avg_salary, MAX(salary) AS max_salary
FROM employees
GROUP BY department_id
ORDER BY department_id;

결과: 각 부서별 평균 급여와 최대 급여를 보여줍니다.


요약 😊

함수 설명
COUNT 데이터 개수를 계산합니다.
SUM 숫자 열의 합계를 계산합니다.
AVG 숫자 열의 평균값을 계산합니다.
MAX 숫자 열에서 가장 큰 값을 반환합니다.
MIN 숫자 열에서 가장 작은 값을 반환합니다.
LISTAGG GROUP_CONCAT() 대체로 문자열을 연결합니다.

초보 개발자 응원 😊

SQL은 처음에 어렵게 느껴질 수 있지만, 반복 연습을 통해 금방 익숙해질 수 있어요! 코드를 직접 실행해 보며 하나씩 이해해 보면 훨씬 쉬울 거예요. 화이팅! 💪

반응형
SMALL