본문 바로가기
반응형

sqld35

PIVOT에 대해 알아보자 PIVOT에 대해 알아보자 1) PIVOT 절 요약: “행 데이터를 열로 돌려 세운다”개념세로로 늘어진 값(행)을 특정 컬럼의 값 기준으로 **가로 열(컬럼)**로 펼칩니다.보통 “집계(합계/개수)”가 같이 들어갑니다.→ 그래서 피벗은 “요약 보고서 표” 만들 때 많이 씁니다.기본 형태(이미지 내용)SELECT ...FROM (원본 SELECT)PIVOT (집계함수(집계대상컬럼)FOR 피벗기준컬럼 IN (열로 만들 값들...));FOR : “어떤 컬럼을 열로 펼칠 거냐?”IN : “열로 만들 값 목록(직접 적어줘야 함)”예: JOB이 CLERK, SALESMAN… 이 값들이 열 이름이 됨예시 1) “부서(DEPTNO)별 직무(JOB) 인원수”원본 데이터는 보통 이런 형태죠(세로):(DEPTNO=10, J.. 2026. 2. 25.
Top N 쿼리가 무엇인가요? Top N 쿼리가 무엇인가요? 1) ROWNUM(오라클) — “가상 번호(슈도 컬럼)”(1) 슈도 컬럼이란?테이블에 실제로 저장된 컬럼이 아니라, DB가 실행 과정에서 임시로 만들어 주는 값입니다.오라클 대표 슈도 컬럼: ROWNUM, ROWID, LEVEL, CURRVAL/NEXTVAL(시퀀스)(2) ROWNUM 특징결과가 만들어질 때 행에 1,2,3… 번호가 붙습니다.그래서 “상위 몇 행”을 자를 때 쓰기 좋습니다.(3) ROWNUM으로 Top N 하는 기본 패턴(중요)정렬이 먼저, ROWNUM은 그 다음이어야 합니다.그래서 보통 “정렬을 서브쿼리로 감싼 뒤” ROWNUM을 붙입니다.예: 급여(SAL) 높은 순으로 상위 5명SELECT ROWNUM, empno, ename, salFROM (SELE.. 2026. 2. 25.
윈도우함수가 무엇인가? 윈도우함수가 무엇인가? 윈도우 함수 한 줄 정의행을 줄이지 않고(=GROUP BY처럼 뭉개지 않고), 각 행 옆에 ‘분석용 값’을 붙이는 함수입니다.GROUP BY → 결과 행 수가 줄어듦(집계행만 남음)윈도우 함수 → 원래 행은 그대로 + 옆에 순위/평균/이전값/누적비율 같은 컬럼이 추가됨1) 윈도우 함수 기본 틀(OVER)윈도우 함수는 항상 OVER(...)가 붙습니다.윈도우함수() OVER(PARTITION BY ... -- 그룹 나누기(부서별, 학급별)ORDER BY ... -- 그룹 안에서 정렬(급여순, 날짜순)[WINDOW FRAME] -- “어디까지를 범위로 볼지” (핵심)) 핵심 개념 2개PARTITION BY: “부서별로 따로 계산”ORDER BY: “부서 안에서 급여순으로 순위/흐름 만.. 2026. 2. 25.
그룹함수 그룹함수 1) 왜 ROLLUP / CUBE가 필요하나?GROUP BY는 보통 “그룹별 합계”만 냅니다.예) 부서+직무별 급여 합계SELECT deptno, job, SUM(sal) total_salaryFROM empGROUP BY deptno, job; 그런데 실무/리포트에서는 보통 아래도 같이 필요합니다.부서별 소계(부서 합계)전체 합계(Grand Total)이걸 한 번에 만들어 주는 게 ROLLUP / CUBE / GROUPING SETS 입니다.2) ROLLUP: “계층적으로 소계 → 총계”개념ROLLUP(deptno, job)이면 집계가 이런 계층으로 나옵니다.(deptno, job) 상세 합계(deptno) 부서 소계(전체) 총계예시SELECT deptno, job, SUM(sal) total.. 2026. 2. 24.
집합연산자 집합연산자 1) 집합 연산자란?두 개 이상의 SELECT 결과를 하나의 결과로 결합할 때 씁니다.대표 연산자: UNION, UNION ALL, INTERSECT, MINUS(Oracle)사용 조건(중요)합치는 각 SELECT는 컬럼 개수가 같아야 합니다.각 컬럼의 데이터 타입이 호환되어야 합니다. (숫자↔숫자, 문자↔문자 등)보통 컬럼 이름은 첫 번째 SELECT의 이름이 결과에 사용됩니다.정렬(ORDER BY)은 맨 마지막에 한 번만 붙이는 게 원칙입니다.2) 종류별로 한 번에 이해하기UNION (합집합, 중복 제거)두 결과를 합치되 중복 행은 1개로 정리합니다.중복 제거 과정이 있어서 UNION ALL보다 느릴 수 있음.예시(부서번호 목록 합치기):SELECT DEPTNO FROM DEPTUNIONS.. 2026. 2. 24.
서브쿼리 서브쿼리A. 서브쿼리 요약 (핵심 개념 + 연관 서브쿼리)1) 서브쿼리(Subquery) 한 줄 정의쿼리 안에 들어가는 또 다른 쿼리입니다.“먼저 작은 쿼리로 기준/목록/값을 만들고 → 메인쿼리가 그걸 이용해 조회/수정”하는 구조입니다.2) 연관 서브쿼리(Correlated Subquery)란?이미지 핵심:메인쿼리의 ‘각 행(row)’마다 서브쿼리가 다시 실행됩니다.서브쿼리가 메인쿼리의 컬럼을 참조합니다. (예: E1.DEPTNO를 서브쿼리에서 사용)그래서 일반(비연관) 서브쿼리보다 느릴 수 있음(행마다 반복 실행되기 때문).3) 연관 서브쿼리 예시 1: “자기 부서 평균보다 급여가 높은 직원”의미:직원 한 명(E1)을 기준으로,“E1이 속한 부서의 평균 급여”를 다시 계산해서,E1의 급여가 그 평균보다.. 2026. 2. 24.
반응형