SQLD - SQL 활용

SubQuery

  • 하나의 쿼리 안에 존재하는 또 다른 쿼리
  • 바깥에 있는 엄마쿼리를 메인쿼리 - 안에 있는 아기쿼리를 서브쿼리
  • 위치에 따른 SubQuery
SELECT 절 FROM 절 WHERE 절, HAVING 절
Scalar SubQuery Inline View Nested SubQuery

 

Scalar SubQuery

  • 주로 SELECT 절에 위치하지만, Column이 올 수 있는 대부분의 위치에 사용 가능
  • 반드시 하나의 값만을 반환해야 하며, 그렇지 않은 경우 에러 발생

Inline View

  • FROM 절 등 테이블명이 올 수 있는 위치에 사용 가능

Nested SubQuery

  • WHERE 절과 HAVING 절에 사용 가능
  • Main Query와의 관계에 따라 나눌 수 있음
Uncorrelated SubQuery correlated SubQuery
Main Query 와의 관계를 맺고 있지 않음 Main Query 와의 관계를 맺음

 

Nested SubQuery 데이터 형태

Single Row  Multi Row Multi Column
1건 이하 데이터 반환 여러 건 데이터 반환 여러 컬럼 데이터 반환
Ex) =, <, >, ... Ex) IN, ALL, ,, ...

 

View

  • 특정 SELECT 문에 이름을 붙여서 재사용이 가능하도록 저장해놓은 Object
  • 실제 데이터를 저장하지 않고 데이터를 조회해오는 SELECT 문만 가진 가상 테이블
  • 보안성, 편리성, 독립성을 가짐

집합 연산자

  • 각 쿼리의 결과 집합을 가지고 연산을 하는 명령어
UNION ALL UNION INTERSECT MINUS/EXCEPT
합집합 + 중복된 행은 그대로 합집합 + 중복된 행은 한 줄로 교집합 + 중복된 행은 한 줄로 차집합 + 중복된 행은 한 줄로

 

그룹 함수

  • 데이터를 GROUP BY하여 나타낼 수 있는 데이터를 구하는 함수
집계 함수 소계(총계) 함수
COUNT, SUM, AVG, MAX, MIN 등 ROLLUP, CUBE, GROUPING SETS 등

 

소계(총계) 함수

ROLLUP

ROLLUP(A) ROLLUP(A, B) ROLLUP(A, B, C)
A로 그룹핑, 총합계 A, B로 그룹핑 -> A로 그룹핑, 총합계 A, B, C로 그룹핑 -> ... -> 총합계

 

CUBE

  • ROLLUP 에서 조합할 수 있는 모든 그룹에 대한 소계를 집계한 함수,,

GROUPING SETS

  • 특정 항목에 대한 소계 계산하는 함수
  • 인자값으로 ROLLUP이나 CUBE를 사용 가능

GROUPING

  • ROLLUP, CUBE, GROUPING SETS 등과 함께 사용
  • 소계를 나타내는 ROW를 구분할 수 있게 해 줌
  • 원하는 위치에 원하는 텍스트를 출력

'Data Engineer > SQLD' 카테고리의 다른 글

SQL 기본  (3) 2024.11.13
데이터 모델과 SQL  (3) 2024.11.09
SQLD - Data modeling  (5) 2024.11.03