반응형 분류 전체보기89 윈도우함수가 무엇인가? 윈도우함수가 무엇인가? 윈도우 함수 한 줄 정의행을 줄이지 않고(=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. JOIN 이해하기 SELECT s.ID, s.NAME, d.DNAMEFROM STUDENT sINNER JOIN DEPARTMENT dON s.DEPTNO = d.DEPTNO; JOIN 이해하기 1) JOIN이란?서로 다른 테이블의 데이터를 **공통 기준 컬럼(키)**으로 연결해서 한 결과로 보는 것.보통 ON 조건으로 “어떤 컬럼이 같을 때 붙일지”를 정합니다.✅ 기본 형태SELECT ...FROM AJOIN BON A.key = B.key; 2) 식별자 관계 조인 vs 비식별자 조인① 식별자 관계 조인(정석)PK–FK로 연결되는 조인가장 흔하고 데이터 정합성이 좋음✅ 예시(직원-부서)EMP_NEW: DEPTNO(FK)DEPT_NEW: DEPTNO(PK)SELECT e.ENAME, d.DNAMEFROM EMP_NEW e.. 2026. 2. 23. 집계함수와 group by절 집계함수와 group by절 1) 집계함수(다중행 함수)란?여러 행을 모아서 결과 1개를 만드는 함수입니다.대표: SUM, AVG, COUNT, MAX, MIN✅ 예시(EMP 전체 통계)SELECTSUM(SAL) AS total_salary,AVG(SAL) AS avg_salary,COUNT(*) AS employee_count,MAX(SAL) AS max_salary,MIN(SAL) AS min_salaryFROM EMP; 2) GROUP BY 절이란?집계함수를 “전체”가 아니라 그룹별로 계산하게 해줍니다.✅ 예시(부서별 평균 급여)SELECTDEPTNO,AVG(SAL) AS avg_salFROM EMPGROUP BY DEPTNO; 핵심 규칙SELECT에 **그룹 기준 컬럼(DEPTNO)**을 .. 2026. 2. 23. 이전 1 2 3 4 5 6 7 ··· 15 다음 반응형