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 JOINA ⊃ 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:001111