본문 바로가기
학습

SQLD 자격증 따기4 - SQL 활용

by 공덕뉸나 2023. 7. 12.

지난 글에는 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 활용 내용을 정리해보았다.

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

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