programing

sql에서 모든 그룹의 첫 번째 행

magicmemo 2023. 6. 15. 21:47
반응형

sql에서 모든 그룹의 첫 번째 행

테이블이 두 개 있습니다.

1-> SM_직원

 (1) employeeid   
 (2) roleid
 (3) storeid

2-> SM_SalesRep 워크플로우

 (1) workflowid
 (2) Salesrepid   foreign key to employeeid
 (3) QuantityAssigned
 (4) QuantityLeft
 (5) month 
 (6) year

이 표를 기준으로 SM_SalesRepWorkflow 주문의 모든 SalesRepDetails 첫 번째 행을 CurrentMonth 및 CurrentYear에 대한 SalesRepId로 선택해야 합니다.

Workflowid SalesRepid 수량 할당된 수량 남은 달 연도

WF_101 : EMP_101 : 100 : 90 : 2013년 5월
WF_101 : EMP_102 : 100 : 100 : 2013년 5월 :
WF_101 : EMP_103 : 100 : 80 : 2013년 5월
WF_102 : EMP_101 : 100 : 70 : 2013년 5월

그래서 제가 원하는 결과는

WF_101 : EMP_101 : 100 : 90 : 2013년 5월
WF_101 : EMP_102 : 100 : 100 : 2013년 5월 :
WF_101 : EMP_103 : 100 : 80 : 2013년 5월

따라서 영업 담당자에게는 많은 워크플로우가 있을 수 있습니다.하지만 저는 이번 달과 올해의 모든 영업 담당자에게 첫 번째 것을 원합니다.

사용할 수 있습니다.ROW_NUMBER()다음과 같은 기능:

SELECT *
  FROM(SELECT workflowid, salesRepId, quantityAssigned,
              quantityLeft, month, year
              , ROW_NUMBER()
                OVER (PARTITION BY salesRepId
                          ORDER BY workflowid) AS rownumber
         FROM sm_salesRepWorkflow)
 WHERE rownumber = 1;

피들 데모

질문을 이해하는 데 약간 어려움이 있어서 제가 쉬면 나중에 수정하겠습니다. 하지만 당신은 다음과 같은 것을 하고 싶어하는 것처럼 보입니다.SELECT * FROM SM_SalesRepWorkflow WHERE Workflowid = latest여기서 latest는 워크플로의 id입니다.쿼리에서 수행하는 대신 쿼리 외부의 최신 정보를 확인하여 가져올 수 있습니까?

언급URL : https://stackoverflow.com/questions/16529701/select-first-row-of-every-group-in-sql

반응형