집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 각 영업 담당자의 첫 번째 워크플로를 검색하는 방법은 무엇입니까?
각 영업 담당자의 초기 워크플로 검색
이 SQL 쿼리는 이번 달 및 연도 내 각 영업 담당자의 첫 번째 워크플로 레코드를 효율적으로 검색합니다. 데이터의 출처는 SM_Employee
및 SM_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 중국어 웹사이트의 기타 관련 기사를 참조하세요!