*Youtube Link - https://www.youtube.com/watch?v=OFqWRsoSsy8&list=PL6i7rGeEmTvpLoDkB-kECcuD1zDt_gaPn&index=21
41. INTERSECT
1. UNION ALL
2. UNION
3. MINUS (sql server EXCEPT)
4. INTERSECT
42. Window Function
보기 1번은 내가 데이터를 보고 싶은데 이런 데이터를 줘
이것 저것 비교 출력해주는 최적의 방안을 구한다.
보기 2번은 RANGE BETWEEN / ROWS BETWEEN이 된다.
보기 3번은 GROUP BY는 행이 줄어들지만, WINDOW FUNCTION은 행이 줄어들지 않는다.
보기 4번은 같이 실행은 되지만 의미가 있는 데이터가 나오지는 않는다.
43. GROUP BY
COUNT(GRADE)를 하면 NULL은 제외하고 출력을 한다.
WHERE GRADE IN ('차장', '부장', '널'); 은 이 '널'은 의미가 없는 데이터이기 때문에 NULL을 제외하고 샌다.
그리고 COUNT(*) FROM EMP GROUP BY GRADE;를 하면 이렇게 사원, 대리, 과장, 차장, 부장 그리고 NULL 까지 수가 같이 조회가 된다. GRADE가 NULL인 값까지 같이 조회가 된다.
44. LAG() 함수
LAG(컬럼, 오프셋, 디폴트) 로 구성되어 있다.
컬럼의 오프셋 만큼의 이전 행의 값을 출력한다. 만일 없으면 NULL을 입력하는데 디폴트 값이 있으면 디폴트 값을 입력한다.
45. 중복 테이블 추가
A 시스템과 B시스템이 있는데 서로 동일한 테이블의 구조를 갖은 테이블 A,C가 있다.
이렇게 GRANT 권한을 주어서 A시스템의 C테이블에 접속을 한다.
그래서 B시스템의 A테이블과 A시스템의 C테이블을 원격 조인을 하려고 한다.
그런데 B시스템에서 그냥 C테이블을 갖고 와서 중복 테이블을 만드는 것이다.
이러한 기법을 중복 테이블 추가라고 한다.
46. UPPER
문자열을 대문자로 바꿔준다.
전부 바꿔준다.
'12#3가나abc' -> '12#3가나ABC'
47. LEAD()
LEAD(SAL) -> LEAD(SAL,1)
기본 디폴트 값은 1이다.
48. UNION
UNION은 중복을 제거한다.
UNION ALL은 중복을 제거하지 않는다.
답은 2번이다.
49. NULL
날짜 더하기 NULL을 하면
NULL은 산술/비교 자체가 아얘 안 되므로
NULL이 출력된다.
50. CUBE
GROUP BY를 진행하고
전체 1건
DNAME별 소계 3건
JOB별 소계 5건
그리고 DNAME, JOB을 GROUP BY한 결과 9건
더해서 총 18건이 나온다.
감사합니다.
'SQLD' 카테고리의 다른 글
[리눅스 마스터 2급] 02-01-02 파일 시스템의 관리 (0) | 2024.11.19 |
---|---|
[SQLD] 최신 기출문제 3회 (31~40) (2) | 2024.11.15 |
[SQLD] 최신 기출문제 3회 (21~30) (7) | 2024.11.15 |
[SQLD] 최신 기출문제 3회차 (11~20) (4) | 2024.11.14 |
[SQLD] 최신 기출문제 3회 (1~10) (2) | 2024.11.14 |