클리엘
CLIEL LAB
클리엘
전체 방문자
오늘
어제
  • 분류 전체보기 (515) N
    • Mobile (47)
      • Kotlin (47)
    • Web (84)
      • NestJS (9)
      • HTML5 & CSS3 (38)
      • Javascript (20)
      • TypeScript (6)
      • JQuery (11)
    • .NET (302) N
      • C# (85) N
      • ASP.NET (67)
      • Windows API for .NET (128)
    • Server (53)
      • SQL Server (10)
      • MariaDB (18)
      • Windows Server (6)
      • node.js (19)
    • System (12)
      • 작업LOG (12)
    • Review (11)
    • ETC (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 정리

인기 글

태그

  • asp.net core web api
  • exception
  • MariaDB
  • HTML5
  • NestJS
  • .NET
  • ASP.NET
  • Kotlin
  • node.js
  • asp.net core
  • c#
  • jQuery
  • 변수
  • android
  • JavaScript
  • android studio
  • CSS3
  • Windows API
  • LINQ
  • Entity Framework

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
클리엘

CLIEL LAB

Server/MariaDB

[MariaDB] CTE

2021. 6. 7. 14:58
728x90

CTE(Common Table Expression)는 select로 가져온 결과를 하나의 테이블로 간주하여 필요한 쿼리를 좀 더 간략화하여 사용할 수 있도록 해줍니다.

 

CTE의 사용형식은 아래와 같습니다.

with [CTE이름] (컬럽명1, 컬럼명2....)
as
(
	select 구문...
)

상기 규칙에 따라 CTE를 작성하면 다음과 같은 형식으로 만들어질 수 있습니다.

with tmpCTETbl (userAddress, totalAge)
as
(
	select userAddress, SUM(userAge)
	from tb_user tu
	group by userAddress
)
select userAddress, totalAge
from tmpCTETbl;

첫 번째 select문에서는 userAddress와 userAddress별로 userAge값을 합산한 결과를 가져오도록 하고 있으며 이 결과를 'with [CTE이름] ' 안으로 묶어 tmpCTETbl 이라는 하나의 테이블로 취급될 수 있도록 하고 있습니다. 단, CTE에서 지정된 컬럼수와 내부의 select에서 가져오는 컬럼수는 일치해야 합니다.

 

따라서 2번째 select문에서는 tmpCTETbl이라는 테이블을 명시해 CTE의 데이터를 조회할 수 있습니다. 이러한 방식을 이용하면 순서나 기타 다른 집게관련 구문을 별도로 작성할 수 있으므로 쿼리의 복잡도를 줄일 수 있습니다.

 

참고로 CTE내부에서는 다른 CTE가 포함될 수 있으며 하위 CTE에서는 상위 CTE를 참조할 수 있으나 상위 CTE에서는 하위 CTE를 참조할 수 없으므로 주의해야 합니다.

728x90
저작자표시 비영리 변경금지 (새창열림)

'Server > MariaDB' 카테고리의 다른 글

[MariaDB] 흐름제어 함수  (0) 2021.07.22
[MariaDB] 데이터형식  (0) 2021.07.21
[MairaDB] delete  (0) 2021.06.07
[MariaDB] update  (0) 2021.06.07
[MariaDB] insert  (0) 2021.06.07
    'Server/MariaDB' 카테고리의 다른 글
    • [MariaDB] 흐름제어 함수
    • [MariaDB] 데이터형식
    • [MairaDB] delete
    • [MariaDB] update
    클리엘
    클리엘
    누구냐 넌?

    티스토리툴바