SQL Compiler:
기출 복원 사이트:
SQLd 기출 예상 복원
Q. 자신과 성별이 같은 부양가족을 가진 직원의 이름을 검색하는 질의를 SQL?
SELECT E.이름
FROM 직원 AS E
WHERE EXISTS (SELECT * FROM 부양가족 WHERE E.직원번호 = 직원번호 AND E.성별 = 성별);
Q. 부양가족을 2명 이상 가진 사원의 사번(eno), 성명(ename), 부양가족 수를 검색’하는 질의를 SQL?
[Table]
employee(eno, ename, adddress, score, dno)
dependent(eno, ename, birthday, relation)
SELECT e.eno, e.ename, t.cnt
FROM employee e, (SELECT eno, count(*) as cnt
FROM dependent
GROUP BY eno HAVING count (*) >= 2) cnt t
WHERE e.eno = t.eno;
Q. 현재 행을 기준으로 파티션 내에서 앞의 한 건, 현재행, 뒤의 한 건을 범위를 지정하는 Over의 옵션?
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
Q. 인덱스 특징:
- 인덱스는 내림차순으로 생성 및 정렬된다.
- 비용적인 측면에서는 전체 테이블 스캔이 유리할 수 있다.
- 규칙 기반 옵티마이저의 규칙에 따라 적절한 인덱스가 존재하면 전체 테이블 스캔보다는 항상 인덱스를 사용하려고 한다.
- 인덱스 범위 스캔은 결과 건수만큼 반환한다. 결과가 없으면 한 건도 반환하지 않을 수 있다.
Q. 매출 누적을 구하는 SQL문(윈도우 함수 사용)?
SELECT 영업사원, 판매월, sum(매출)
OVER (PARTITION BY 영업사원 ORDER BY 판매월
RAGNE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 누적매출
FROM 매출;
참고, https://cbt.youngjin.com/exam/index.php?no=73