파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
이 블로그에서는 CTE 라고도 하는 몇 가지 일반적인 테이블 식에 대해 설명합니다 . 복잡한 문제가 발생하면 이러한 SQL 테이블 표현식을 사용하면 도움이 될 수 있습니다.
CTE를 사용하면 복잡한 문제를 해결하기 위해 모든 작업을 작고 관리 가능한 쿼리로 나눌 수 있습니다.
이제 CTE가 코드 문제 해결 작업을 보다 효율적으로 만드는 방법을 살펴보겠습니다 .
목차
공통 SQL 테이블 표현식 작성을 위한 구문
먼저 " WITH " 다음에 CTE 표현식 이름 , " AS "를 입력해야 합니다 .
그런 다음 괄호 사이에 쿼리를 제공할 수 있습니다. 이것은 가상 테이블로 작동할 제공된 표현식 이름에 저장됩니다.
그런 다음 설정한 Expression 이름을 통해 생성한 가상 테이블을 사용하여 SELECT 문을 추가합니다.
이 예에서는 식 이름 에 " USACusts "를 사용합니다 .
쿼리에는 이 코드를 사용합니다.
이 쿼리는 가상 테이블을 생성합니다. 고객이 속한 국가가 ' 미국 '인 경우 고객 ID별로 그룹화된 총 금액 또는 집계 금액이 표시됩니다. 데이터는 Sales.Customers 테이블 에서 추출됩니다 .
custid 및 Agg_Amount 의 두 열이 표시됩니다 . USACusts 테이블은 물리적 테이블이 아니라 가상 테이블일 뿐입니다. 즉, 데이터베이스에 표시되지 않습니다.
쿼리 후에 SELECT 문을 추가할 수 있습니다 .
이 문은 USACusts 테이블 에서 1000 보다 큰 모든 Agg_Amount를 선택합니다 .
다중 공통 SQL 테이블 표현식
여러 CTE는 코드의 복잡한 오류를 더 작은 청크로 나누어 해결하는 데 도움이 될 수 있습니다. 또한 CTE를 원하는 만큼 정의할 수 있습니다. 다음은 여러 CTE 의 예입니다 .
이 예에서는 C1 인 첫 번째 CTE가 있습니다 . 여기에서 YEAR(orderdate)를 선택 하고 Sales.Orders 테이블 에서 orderyear 및 custid 인 2개의 열을 생성했습니다 .
C2 라는 두 번째 CTE 의 경우 orderyear를 선택 하고 COUNT 명령을 사용하여 custid 수를 수집했습니다 . 그런 다음 C1 에서 numcusts 로 이름을 지정했습니다 . 2015 보다 큰 주문 연도 만 선택하기 위해 WHERE 조건 도 C2 에 추가되었습니다 . 그런 다음 주문연도 별로 그룹화했습니다 .
그런 다음 C2 에서 orderyear 및 numcusts를 선택했습니다 . 그런 다음 WHERE 조건을 추가하여 500 보다 큰 고객 수만 선택했습니다 .
정리하면 이 코드는 orderyear 가 2015년 보다 큰 고객을 선택하고 orderyear 조건 에 따라 500 명 이상의 고객만 선택하는 코드 입니다 .
복잡한 코드를 해결하기 위해 여러 CTE 사용
다음으로, 대규모 데이터 집합의 문제를 해결할 때 CTE 사용을 더욱 강조하기 위해 더 많은 예를 보여드리겠습니다 . 다음은 여러 CTE 의 또 다른 예입니다 .
원하는 방식으로 CTE의 이름을 지정할 수 있지만 이 블로그에서는 C1 , C2 , C3 등을 사용하여 예제에서 CTE를 활용하는 방법을 쉽게 식별하고 이해할 수 있습니다.
예제로 돌아가서 Sales.SalesOrderDetails 테이블 에서 주문 수량이 5 보다 큰 판매만 선택하도록 C1을 만들었습니다 .
그런 다음 C2 에서 C1 에 저장한 데이터를 활용하여 Product.ID 를 기반으로 제품을 결합 하고 제품 이름 (p.Name) 및 제품 색상 (p.Color) 별로 그룹화했습니다 .
C1 에서 조건을 선언했으므로 주문 수량 (OrderQty) 이 5 보다 큰 주문에 대해서만 C2 에서 제품 이름과 제품 색상을 그룹화합니다 .
그런 다음 주문 수량이 1000 보다 큰 C2에서 모든 데이터를 선택하는 명령을 사용합니다 .
문제 해결을 위해 생성한 각 CTE를 선택하여 올바른 데이터를 표시하는지 확인할 수 있습니다. 아래 예를 참조하십시오.
C1 의 경우 주문 수량이 5 보다 큰 Sales.SalesOrderDetail 테이블 의 모든 데이터를 표시합니다 .
그런 다음 C2는 C1 의 제품 이름 및 색상별로 그룹화된 주문 수량의 출력을 표시합니다 . C2 에서 orderqty 열을 볼 수 있지만 C1 에서 생성한 계산 열일 뿐이므로 실제로 C2 에는 해당 열이 없습니다 . 여기에서 orderqty 열의 조건을 사용하여 문제 해결을 수행할 수 있습니다.
이제 여러 CTE가 복잡한 코드의 오류를 CTE 에 저장하여 오류를 해결 하고 실제 코드를 손상시키지 않고 문제 해결을 시작하는 데 어떻게 도움이 되는지 확인할 수 있습니다.
Case 문과 함께 CTE 사용
복잡한 코드 문제를 해결하는 데 여러 CTE를 활용하는 방법을 보여주기 위해 동일한 컨텍스트의 또 다른 예를 살펴보겠습니다 .
이 경우 C2 에서 집계된 orderqty 금액을 기반으로 하는 결과가 포함된 Product Category 열을 생성하는 CASE 문을 사용하겠습니다 .
앞서 언급했듯이 첫 번째 CTE 와 제품 범주 에는 orderqty가 없었지만 중간 테이블을 사용하여 다른 계산을 계산하고 수행했습니다.
다음 예에서는 이전 예에서 만든 제품 범주를 기반으로 집계된 금액을 만듭니다 . 그러나 이렇게 하려면 제품 범주 에 대한 CASE 문을 세 번째 CTE 인 C3 에 넣습니다 .
계속 진행하기 전에 C3 아래에 " SELECT * FROM C3 "를 추가하여 C3 의 출력을 확인합시다 .
C3 에서는 ProductName , Color , orderqty 및 Product Category 열을 볼 수 있습니다 . 여기에서 제품 범주를 기준으로 집계를 시작할 수 있습니다 . C3 아래의 다음 명령을 사용하여 이를 수행해 보겠습니다 .
아래 예시는 위의 명령어를 이용하여 집계된 금액을 생성한 결과입니다.
처음에는 Product Category 및 orderqty 열이 없었지만 여러 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에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것