>데이터 베이스 >MySQL 튜토리얼 >SQL에서 각 영업 담당자의 첫 번째 워크플로를 검색하는 방법은 무엇입니까?

SQL에서 각 영업 담당자의 첫 번째 워크플로를 검색하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-22 06:09:12330검색

How to Retrieve the First Workflow for Each Sales Representative in SQL?

각 영업 담당자의 초기 워크플로 검색

이 SQL 쿼리는 이번 달 및 연도 내 각 영업 담당자의 첫 번째 워크플로 레코드를 효율적으로 검색합니다. 데이터의 출처는 SM_EmployeeSM_SalesRepWorkflow 두 테이블입니다.

해당 솔루션은 ROW_NUMBER()창 기능을 활용합니다. 이 함수는 지정된 순서(여기서는 workflowid)를 기준으로 정의된 파티션(이 경우 각 영업 담당자) 내의 각 행에 고유한 순위를 할당합니다.

SQL 쿼리는 다음과 같습니다.

<code class="language-sql">SELECT *
FROM (
    SELECT 
        workflowid, 
        salesRepId, 
        quantityAssigned, 
        quantityLeft, 
        month, 
        year,
        ROW_NUMBER() OVER (PARTITION BY salesRepId ORDER BY workflowid) AS rownumber
    FROM SM_SalesRepWorkflow
) ranked_workflows
WHERE rownumber = 1;</code>

이 쿼리는 먼저 workflowid에 의해 정렬된 각 영업 담당자의 각 워크플로에 행 번호를 할당합니다. 그런 다음 외부 쿼리는 이 결과 집합을 필터링하여 rownumber = 1이 있는 행만 선택하고 각 salesRepId.

에 대한 첫 번째 워크플로를 효과적으로 반환합니다.

예시 데이터 및 결과:

SM_SalesRepWorkflow의 샘플 데이터를 바탕으로:

Workflowid SalesRepId QuantityAssigned QuantityLeft Month Year
WF_101 EMP_101 100 90 May 2013
WF_102 EMP_101 100 70 May 2013
WF_101 EMP_102 100 100 May 2013
WF_101 EMP_103 100 80 May 2013

쿼리 결과는 다음과 같습니다.

Workflowid SalesRepId QuantityAssigned QuantityLeft Month Year
WF_101 EMP_101 100 90 May 2013
WF_101 EMP_102 100 100 May 2013
WF_101 EMP_103 100 80 May 2013

이는 각 영업 담당자의 첫 번째 워크플로를 정확하게 반영합니다. 이 접근 방식에서는 workflowid가 "첫 번째" 작업 흐름을 결정하는 데 의미 있는 순서를 제공한다고 가정합니다. 다른 순서가 필요한 경우 ORDER BY 절을 적절하게 조정하세요.

위 내용은 SQL에서 각 영업 담당자의 첫 번째 워크플로를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.