SQL 함수 설명

SQL 코드 스니펫을 설명합니다.

모델을 직접 쿼리하고 Cloud 콘솔에서 다른 매개변수 값을 사용하거나 Vertex AI API를 직접 호출하여 반환된 결과를 테스트할 수 있습니다.

자유 형식 프롬프트

아래 코드에서 CROSS APPLY의 함수를 설명합니다.

SELECT customer.CustomerId, customer.CustomerName, ord.*
FROM customers customer
CROSS APPLY
(
    SELECT SUM(order.quantity) as TotalQuantity
    FROM orders order
    WHERE order.CustomerId = customer.CustomerId
) ord;

응답

이 SQL 코드의 CROSS APPLY 함수는 서브 쿼리 결과를 customers 테이블의 각 행에 적용하는 상관 서브 쿼리의 역할을 합니다. 분류는 다음과 같습니다.

  1. 외부 쿼리: 기본 쿼리는 customer로 별칭이 지정된 customers 테이블에서 CustomerIdCustomerName를 선택합니다.

  2. CROSS APPLY: 이 키워드는 상관 하위 쿼리를 발생시킵니다. 이 함수는 데이터베이스에 customers 테이블의 각 행에 대해 서브 쿼리를 실행하도록 지시합니다.

  3. 서브 쿼리: 서브 쿼리는 다음과 같은 방법으로 각 고객에 대해 TotalQuantity를 계산합니다.

  4. orders 테이블에서 quantity 합계를 선택합니다(별칭 order으로 지정).

  5. customers 테이블의 현재 행에 있는 CustomerId을 기준으로 orders 테이블을 필터링합니다.

  6. 결과: CROSS APPLY는 각 고객에 대해 CustomerId, CustomerName, 계산된 TotalQuantity을 포함하는 단일 행을 반환합니다.

기본적으로 CROSS APPLY를 사용하면 서브 쿼리 결과를 기반으로 각 고객의 새 열(TotalQuantity)을 동적으로 생성하여 customers 테이블을 집계된 주문 데이터와 효과적으로 결합할 수 있습니다.

예시:

다음 데이터가 있다고 가정해 보겠습니다.

고객:

CustomerId CustomerName
1 John Doe
2 Jane Smith

주문:

OrderId CustomerId 수량
1 1 5
2 1 3
3 2 2

쿼리는 다음과 같은 결과를 반환합니다.

CustomerId CustomerName TotalQuantity
1 John Doe 8
2 Jane Smith 2

참고:

  • CROSS APPLYOUTER APPLY와 비슷하지만 서브 쿼리가 결과를 반환하지 않더라도 OUTER APPLY는 행을 반환합니다.
  • 이 특정 예시에서는 GROUP BY 절과 함께 JOIN을 사용하여 동일한 결과를 얻을 수 있습니다. 하지만 특정 시나리오에서, 특히 복잡한 서브 쿼리를 처리할 때 CROSS APPLY가 더 유연하고 효율적일 수 있습니다.
모델: gemini-1.5-flash-001
강도: 1
최대 출력 토큰: 8192
TopK: 40
TopP: 0.95