LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

이 블로그에서는 CTE 라고도 하는 몇 가지 일반적인 테이블 식에 대해 설명합니다 . 복잡한 문제가 발생하면 이러한 SQL 테이블 표현식을 사용하면 도움이 될 수 있습니다.

CTE를 사용하면 복잡한 문제를 해결하기 위해 모든 작업을 작고 관리 가능한 쿼리로 나눌 수 있습니다.

이제 CTE가 코드 문제 해결 작업을 보다 효율적으로 만드는 방법을 살펴보겠습니다 .

목차

공통 SQL 테이블 표현식 작성을 위한 구문 

먼저 " WITH " 다음에 CTE 표현식 이름 , " AS "를 입력해야 합니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

그런 다음 괄호 사이에 쿼리를 제공할 수 있습니다. 이것은 가상 테이블로 작동할 제공된 표현식 이름에 저장됩니다.

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

그런 다음 설정한 Expression 이름을 통해 생성한 가상 테이블을 사용하여 SELECT 문을 추가합니다.

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

이 예에서는 식 이름 에 " USACusts "를 사용합니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

쿼리에는 이 코드를 사용합니다. 

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

이 쿼리는 가상 테이블을 생성합니다. 고객이 속한 국가가 ' 미국 '인 경우 고객 ID별로 그룹화된 총 금액 또는 집계 금액이 표시됩니다. 데이터는 Sales.Customers 테이블 에서 추출됩니다 .

custidAgg_Amount 의 두 열이 표시됩니다 . USACusts 테이블은 물리적 테이블이 아니라 가상 테이블일 뿐입니다. 즉, 데이터베이스에 표시되지 않습니다.

쿼리 후에 SELECT 문을 추가할 수 있습니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

이 문은 USACusts 테이블 에서 1000 보다 큰 모든 Agg_Amount를 선택합니다 .

다중 공통 SQL 테이블 표현식 

여러 CTE는 코드의 복잡한 오류를 더 작은 청크로 나누어 해결하는 데 도움이 될 수 있습니다. 또한 CTE를 원하는 만큼 정의할 수 있습니다. 다음은 여러 CTE 의 예입니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

이 예에서는 C1 인 첫 번째 CTE가 있습니다 . 여기에서 YEAR(orderdate)를 선택 하고 Sales.Orders 테이블 에서 orderyearcustid 인 2개의 열을 생성했습니다 .

C2 라는 두 번째 CTE 의 경우 orderyear를 선택 하고 COUNT 명령을 사용하여 custid 수를 수집했습니다 . 그런 다음 C1 에서 numcusts 로 이름을 지정했습니다 . 2015 보다 큰 주문 연도 만 선택하기 위해 WHERE 조건 도 C2 에 추가되었습니다 . 그런 다음 주문연도 별로 그룹화했습니다 .

그런 다음 C2 에서 orderyearnumcusts를 선택했습니다 . 그런 다음 WHERE 조건을 추가하여 500 보다 큰 고객 수만 선택했습니다 .

정리하면 이 코드는 orderyear 가 2015년 보다 큰 고객을 선택하고 orderyear 조건 에 따라 500 명 이상의 고객만 선택하는 코드 입니다 .

복잡한 코드를 해결하기 위해 여러 CTE 사용

다음으로, 대규모 데이터 집합의 문제를 해결할 때 CTE 사용을 더욱 강조하기 위해 더 많은 예를 보여드리겠습니다 . 다음은 여러 CTE 의 또 다른 예입니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

원하는 방식으로 CTE의 이름을 지정할 수 있지만 이 블로그에서는 C1 , C2 , C3 등을 사용하여 예제에서 CTE를 활용하는 방법을 쉽게 식별하고 이해할 수 있습니다.

예제로 돌아가서 Sales.SalesOrderDetails 테이블 에서 주문 수량이 5 보다 큰 판매만 선택하도록 C1을 만들었습니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

그런 다음 C2 에서 C1 에 저장한 데이터를 활용하여 Product.ID 기반으로 제품을 결합 하고 제품 이름 (p.Name) 및 제품 색상 (p.Color) 별로 그룹화했습니다 .

C1 에서 조건을 선언했으므로 주문 수량 (OrderQty) 이 5 보다 큰 주문에 대해서만 C2 에서 제품 이름과 제품 색상을 그룹화합니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

그런 다음 주문 수량이 1000 보다 큰 C2에서 모든 데이터를 선택하는 명령을 사용합니다 .

문제 해결을 위해 생성한 각 CTE를 선택하여 올바른 데이터를 표시하는지 확인할 수 있습니다. 아래 예를 참조하십시오.

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

C1 의 경우 주문 수량이 5 보다 큰 Sales.SalesOrderDetail 테이블 의 모든 데이터를 표시합니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

그런 다음 C2는 C1 의 제품 이름 및 색상별로 그룹화된 주문 수량의 출력을 표시합니다 . C2 에서 orderqty 열을 볼 수 있지만 C1 에서 생성한 계산 열일 뿐이므로 실제로 C2 에는 해당 열이 없습니다 . 여기에서 orderqty 열의 조건을 사용하여 문제 해결을 수행할 수 있습니다.

이제 여러 CTE가 복잡한 코드의 오류를 CTE 에 저장하여 오류를 해결 하고 실제 코드를 손상시키지 않고 문제 해결을 시작하는 데 어떻게 도움이 되는지 확인할 수 있습니다.

Case 문과 함께 CTE 사용

복잡한 코드 문제를 해결하는 데 여러 CTE를 활용하는 방법을 보여주기 위해 동일한 컨텍스트의 또 다른 예를 살펴보겠습니다 . 

이 경우 C2 에서 집계된 orderqty 금액을 기반으로 하는 결과가 포함된 Product Category 열을 생성하는 CASE 문을 사용하겠습니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

앞서 언급했듯이 첫 번째 CTE제품 범주 에는 orderqty가 없었지만 중간 테이블을 사용하여 다른 계산을 계산하고 수행했습니다.

다음 예에서는 이전 예에서 만든 제품 범주를 기반으로 집계된 금액을 만듭니다 . 그러나 이렇게 하려면 제품 범주 에 대한 CASE 문을 세 번째 CTEC3 에 넣습니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

계속 진행하기 전에 C3 아래에 " SELECT * FROM C3 "를 추가하여 C3 의 출력을 확인합시다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

C3 에서는 ProductName , Color , orderqtyProduct Category 열을 볼 수 있습니다 . 여기에서 제품 범주를 기준으로 집계를 시작할 수 있습니다 . C3 아래의 다음 명령을 사용하여 이를 수행해 보겠습니다 .

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

아래 예시는 위의 명령어를 이용하여 집계된 금액을 생성한 결과입니다.

LuckyTemplates 사용자를 위한 일반적인 SQL 테이블 식

처음에는 Product Categoryorderqty 열이 없었지만 여러 CTE를 활용하여 이러한 열을 기반으로 샘플 출력을 생성할 수 있습니다 .

이 시점에서 CTE 의 도움으로 코드 작업을 보다 효율적으로 수행 할 수 있다는 것을 알 수 있습니다 .

OFFSET 및 FETCH를 사용하여
IN, NOT IN, LIKE 및 NOT LIKE SQL 데이터 추출을 사용하는 SQL의 LuckyTemplates 사용자 필터에 대한 SQL 임시 테이블 및 뷰

결론

이 자습서에서는 공통 SQL 테이블 식을 만드는 올바른 구문 과 데이터의 작은 부분을 분리하고 지정된 CTE 내부에 저장하여 복잡한 코드 문제를 해결하는 데 여러 CTE를 활용하는 방법을 배웠습니다 .

이를 학습함으로써 이제 코드를 보다 효율적으로 디버깅할 수 있습니다. CTE 에 아무 이름이나 사용할 수 있으며 CTE 를 만들지 않으면 CTE를 사용하거나 호출할 수 없습니다 . CTE 에 익숙해지면 자신을 SQL 의 중간 사용자라고 생각할 수 있습니다 .

이 주제 및 기타 관련 콘텐츠에 대해 더 알고 싶다면 아래 관련 링크 목록을 확인하십시오.

모두 제일 좋다,

하피즈


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것