학습

SQLD 자격증 따기4 - SQL 활용

공덕뉸나 2023. 7. 12. 11:08

지난 글에는 SQL 기본 내용에 대해 포스팅 했었다.

오늘은 SQL 활용 내용에 관한 내용을 정리해볼까 한다.

 

SQL 활용

서브쿼리

서브쿼리는 하나의 쿼리 안에 존재하는 또 다른 쿼리이다.

서브쿼리는 위치에 따라 나눈다.

SELECT 절 스칼라 서브쿼리
FROM 절 인라인 뷰
WHERE절, HAVING 절 중첩 서브쿼리

 

뷰(View)

특정 SELECT 문에 이름이 붙여 재사용이 가능하도록 저장해놓은 것이다.

뷰는 가상테이블이라는 점을 기억하자.

실제 데이터는 저장하지 않고 데이터만 조회하는 것이다.

 

집합 연산자

각 쿼리의 결과 집합을 가지고 연산하는 명령어

UNION ALL 중복 포함 결과 집합의 합집합
UNION 중복 제거 결과 집합의 합집합
INTERSECT 결과 집합의 교집합
MINUS / EXCEPT 차집합

 

그룹 함수

- 집계 함수 : COUNT, SUM, AVG, MAX, MIN

- 소계(총계) 함수 : ROLLUP, CUBE, GROUPING SETS

 

ROLLUP은 인수 순서에 따라 결과가 달라진다.

각 함수들이 어떻게 사용되는지 알아야한다. 시험에 출제된다.

예시들을 꼼꼼히 보는 것을 추천한다..

 

GROUPING은 원하는 위치에 원하는 텍스트를 출력할 수 있다.

 

윈도우 함수

OVER 키워드와 함께 사용된다.

 

(1) 순위 함수

- RANK : 1, 2, 2, 3, 4, ... 

같은 순위가 존재하면 존재하는 수 만큼 다음 순위를 건너뛴다.

- DENSE_RANK : 1, 2, 2, 3, 4, ...

같은 순위가 존재해도 다음 순위를 건너뛰지 않고 이어서 매긴다.

- ROW_NUMBER : 1 , 2, 3, 4, 5, ...

순위를 매기면서 동일한 값이라도 각기 다른 순위를 부여한다.

 

(2) 집계 함수

- SUM : 데이터의 합계

- MAX : 데이터의 최대값

- MIN : 데이터의 최소값

- AVG : 데이터의 평균값

- COUNT : 데이터의 건수

 

(3) 행 순서 함수

- FIRST_VALUE : 파티션 별 가장 선두에 위치한 데이터를 구하는 함수

- LAST_VALUE : 파티션 별 가장 끝에 위치한 데이터를 구하는 함수

- LAG : 파티션 별로 특정 수 만큼 앞선 데이터를 구하는 함수

- LEAD : 파티션 별 특정 수만큼 뒤에 있는 데이터를 구하는 함수

 

(4) 비율 함수

- RATIO_TO_REPORT : 파티션 별 합계에서 차지하는 비율을 구하는 함수

- PERCENT_RANK : 현재 행이 위치하는 백분위 순위 값을 구하는 함수

- CUME_DIST : 해당 파티션에서의 누적 백분율을 구하는 함수

- NTILE : 주어진 수만큼 행들을 n등분한 후 현재 행에 해당하는 등급을 구하는 함수

 

TOP-N 쿼리

ROWNUM : 가짜순번

< 조건이나 <= 조건으로 사용해야 한다.

 

셀프 조인(Self Join)

나 자신과의 조인

대분류, 중분류, 소분류 구분하기

 

계층 쿼리

별도의 JOIN 없이도 계층 구조 출력

 

여기까지 SQL 활용 내용을 정리해보았다.

오늘 내용은 어떻게 사용하는지 다 알아야하며 단답형 준비도 잘 해야한다.

다음에는 관리 구문에 대해 마지막으로 요약정리하고 후기에 관해 작성하려고 한다. 망망!