SQL 함수 설명
bookmark_borderbookmark
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
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 테이블의 각 행에 적용하는 상관 서브 쿼리의 역할을 합니다. 분류는 다음과 같습니다.
외부 쿼리: 기본 쿼리는 customer 로 별칭이 지정된 customers 테이블에서 CustomerId 및 CustomerName 를 선택합니다.
CROSS APPLY : 이 키워드는 상관 하위 쿼리를 발생시킵니다. 이 함수는 데이터베이스에 customers 테이블의 각 행에 대해 서브 쿼리를 실행하도록 지시합니다.
서브 쿼리: 서브 쿼리는 다음과 같은 방법으로 각 고객에 대해 TotalQuantity 를 계산합니다.
orders 테이블에서 quantity 합계를 선택합니다(별칭 order 으로 지정).
customers 테이블의 현재 행에 있는 CustomerId 을 기준으로 orders 테이블을 필터링합니다.
결과: 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 APPLY 는 OUTER APPLY 와 비슷하지만 서브 쿼리가 결과를 반환하지 않더라도 OUTER APPLY 는 행을 반환합니다.
- 이 특정 예시에서는
GROUP BY 절과 함께 JOIN 을 사용하여 동일한 결과를 얻을 수 있습니다. 하지만 특정 시나리오에서, 특히 복잡한 서브 쿼리를 처리할 때 CROSS APPLY 가 더 유연하고 효율적일 수 있습니다.
|
모델: |
gemini-1.5-flash-001 |
강도: |
1 |
최대 출력 토큰: |
8192 |
TopK: |
40 |
TopP: |
0.95 |
|
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-04-09(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-04-09(UTC)"],[],[]]