728x90 Database/Oracle581 [ORACLE] ROW_NUMBER() 함수 완벽 가이드 : 순위 매기기 실전 예제로 배우기 1. ROW_NUMBER란?ROW_NUMBER 함수는 Oracle SQL의 분석 함수 중 하나로, 지정된 정렬 기준에 따라 고유한 일련번호를 부여합니다. 동일한 값이 있어도 무조건 고유한 순번이 부여된다는 점이 특징입니다.📌 기본 문법ROW_NUMBER() OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명 [ASC|DESC])2. ROW_NUMBER 사용 이유각 그룹 내 첫 번째 항목 추출중복 제거 및 유일한 순번 지정페이지네이션 처리 (페이징 쿼리)최신 기록 또는 이전 기록 하나만 선택3. 기본 예제예제: 직원 급여 순번 부여SELECT ename, sal, ROW_NUMBER() OVER (ORDER BY sal DESC) AS row_num FROM emp;결과 예시en.. 2025. 5. 31. [ORACLE] DENSE_RANK() 함수 완전 정복 : 순위 함수 실전 예제로 배우기 1. DENSE_RANK란?DENSE_RANK는 Oracle의 분석 함수 중 하나로, 지정된 정렬 기준에 따라 순위를 부여하지만 동일한 값이 있어도 순위를 건너뛰지 않는 특징을 가집니다. 이 함수는 데이터 집계 및 정렬 결과를 순서화할 때 유용합니다.📌 기본 문법DENSE_RANK() OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명 [ASC|DESC])2. DENSE_RANK의 작동 원리중복된 값이 존재할 경우에도 순위가 연속적으로 유지됩니다. 예를 들어, 동일한 급여가 있는 두 명의 직원이 1등이면, 다음 순위는 2등이 아니라 3등이 됩니다 (RANK의 경우). 하지만 DENSE_RANK는 다음 순위를 2등으로 유지합니다.예제: 직원 급여 순위SELECT ename, sal, .. 2025. 5. 31. [ORACLE] PARTITION BY() 함수 설명과 실무 SQL 예제 모음 PARTITION BY는 Oracle SQL에서 분석 함수(Analytic Function)와 함께 사용되어, 데이터를 논리적으로 그룹화한 후 그 그룹 내에서 계산을 수행할 수 있도록 해주는 매우 유용한 기능입니다.1. PARTITION BY란?SQL에서 PARTITION BY는 데이터를 가상의 그룹으로 나누는 역할을 합니다. 일반적으로 RANK(), DENSE_RANK(), ROW_NUMBER(), SUM(), AVG() 등과 같은 분석 함수와 함께 사용됩니다.📌 기본 문법함수명() OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)2. PARTITION BY 없이 분석 함수 사용아래는 PARTITION BY 없이 RANK()를 사용하는 예제입니다.SELECT ename, deptno,.. 2025. 5. 31. [ORACLE] RANK() OVER 함수로 그룹 별 순위 구하기 실습 가이드 1. RANK 함수란 무엇인가?RANK 함수는 분석 함수의 일종으로, 특정 정렬 기준에 따라 순위(rank)를 부여하는 SQL 함수입니다. 동일한 값에는 동일한 순위가 부여되며, 그다음 순위는 건너뜁니다(즉, 중복 순위 발생 시 GAP 있음).📌 기본 문법RANK() OVER (PARTITION BY column1 ORDER BY column2 [ASC|DESC])예제: 부서별 급여 순위SELECT deptno, ename, sal, RANK() OVER (PARTITION BY deptno ORDER BY sal DESC) AS rank_in_dept FROM emp;결과 예시:deptnoenamesalrank_in_dept10KING5000110CLARK2450210MILLER13003.. 2025. 5. 31. [ORACLE] LISTAGG()로 컬럼 값을 한 줄에 나열하는 방법 Oracle에서 제공하는 LISTAGG 함수는 행 데이터를 하나의 열 문자열로 집계하는 강력한 함수입니다. 본 글에서는 실무에서 자주 사용하는 다양한 예제와 함께 LISTAGG의 문법, 사용법, 오류 처리, 성능 팁 등을 자세히 다룹니다.1. LISTAGG란 무엇인가?LISTAGG는 Oracle 11g Release 2부터 지원되는 집계 함수(Aggregate Function)로, 특정 그룹의 문자열 데이터를 하나의 행으로 병합(concatenate)할 수 있게 해 줍니다.📌 기본 문법LISTAGG(column_name, 'separator') WITHIN GROUP (ORDER BY column_name)✅ 간단 예제SELECT department_id, LISTAGG(employee_n.. 2025. 5. 31. 이전 1 ··· 94 95 96 97 다음 728x90