Certificate/SQLD

[SQLD] 21회 기출 문제 오답 노트

다닿 2023. 11. 14. 19:42

GROUP BY ROLLUP() / GROUP BY CUBE() /  GROUP BY GROUPING SET()

 

GROUP BY ROLLUP(DNAME,JOB)

 = GROUP BY DNAME,JOB 

    UNION ALL

    GROUP BY DNAME 

    UNION ALL

    모든 집합 그룹 결과

 

GROUP BY CUBE(DNAME,JOB)

   = GROUP BY DNAME,JOB

      UNION ALL

     GROUP BY DNAME

     UNION ALL

     GROUP BY JOB

     UNION ALL

    모든 집합 그룹 결과

 

GROUP BY GROUPING SET(DNAME,JOB)

= GROUP BY DNAME

   UNION ALL

   GROUP BY JOB 

 

ROUND / FLOOR / CEIL / TRUNC

 

ROUND: 반올림
FLOOR: 버림 
CEIL: 올림
TRUNC: 제거

 

 

ANSI SQL 에서 조인 조건절 (ON 절) 에 사용된 조건절은 조인 전 조건으로 작용한다

ON 절 이후 WHERE 절에서 쓰인 조건절은 조인후 조건절로 사용된다

 

SQL SERVER 의 IDENTITY 로 지정된 컬럼에는 값을 넣으면 에러가 남

ORACLE 의 CHECK 조건을 만족하지 못할 경우 에러가 나나 NULL 은 무시됨

 

Hash Join 은 Non Equal Join 은 불가능함. Equal Join 만 가능함

사전 Sorting 작업이 필요한 Join 알고리즘은 Sort Merge Join 임

 

실행순서

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

 

결합 함수

Oracle : CONCAT , ||

SQL Server : +

 

RANGE BETWEEN start_point AND end_point

- start_point는 end_point와 같거나 작은 값이 들어감

- Default값은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

- UNBOUNDED PRECEDING : start_point만 들어갈 수 있으며, 파티션의 first row

- UNBOUNDED FOLLOWING : end_point만 들어갈 수 있으며, 파티션의 last row

- CURRENT ROW : start, end_point 둘다 가능. 윈도우는 CUREENT ROW에서 start하거나 end 함