SQLD 대비 요약 정리2

2026.03.05. 16:09

⭐ 1. 윈도우 함수 전체 정리 (ROW_NUMBER ~ NTILE)

윈도우 함수 기본 구조

함수() OVER (
  PARTITION BY 컬럼
  ORDER BY 컬럼
)
  • PARTITION BY : 그룹 나누기

  • ORDER BY : 정렬 기준


① ROW_NUMBER()

순서만 부여 (동점 무시)

점수ROW_NUMBER1001902903


② RANK()

동점 → 같은 순위
다음 순위 건너뜀

점수RANK1001902902804


③ DENSE_RANK()

동점 → 같은 순위
순위 건너뛰지 않음

점수DENSE_RANK1001902902803


④ NTILE(n)

데이터를 n개 그룹으로 나눔

NTILE(4) OVER (ORDER BY score)

점수NTILE(4)1001902803704

👉 분위수 계산


⑤ LAG()

이전 행 값

LAG(sal) OVER (ORDER BY empno)

⑥ LEAD()

다음 행 값

LEAD(sal) OVER (ORDER BY empno)

⑦ FIRST_VALUE()

첫 값


⑧ LAST_VALUE()

마지막 값


⭐ 2. JOIN 7종류 완전 정리

① INNER JOIN

교집합

SELECT *
FROM A
INNER JOIN B
ON A.id = B.id

② LEFT JOIN

왼쪽 테이블 전체

LEFT JOIN
A ⊃ B

③ RIGHT JOIN

오른쪽 테이블 전체

A ⊂ B

④ FULL OUTER JOIN

합집합

A ∪ B

⑤ CROSS JOIN

카티션 곱

행 수 = A * B

⑥ SELF JOIN

자기 자신 조인


⑦ NATURAL JOIN

같은 이름 컬럼 자동 조인


⭐ 3. GROUP BY / HAVING 시험 함정

① WHERE vs HAVING

구분사용 시점WHEREGROUP BY 이전HAVINGGROUP BY 이후


SELECT deptno, SUM(sal)
FROM emp
WHERE sal > 1000
GROUP BY deptno
HAVING SUM(sal) > 5000;

② GROUP BY 규칙

SELECT에 있는 컬럼은

GROUP BY에 있거나
집계함수여야 함

❌ 오류

SELECT deptno, sal
FROM emp
GROUP BY deptno

③ 실행 순서 (시험 중요)

FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY

⭐ 4. DELETE vs TRUNCATE vs DROP

구분DELETETRUNCATEDROP종류DMLDDLDDL조건가능불가불가롤백가능불가불가속도느림빠름빠름구조 삭제XXO


DELETE

DELETE FROM emp
WHERE empno = 10;

행 삭제


TRUNCATE

TRUNCATE TABLE emp;

전체 행 삭제


DROP

DROP TABLE emp;

테이블 자체 삭제

14
2026.03.13. 15:00
1111