행 수를 사용하여 1 또는 2와 일치하는 값을 반환합니다. 모든 값을 2로 유지해야합니다. 그러나 행 수가 1 인 일부 값은 동일합니다 필터를 시도하는 열 이름에. 내가 찾고있는 건 2의 개수를 가지고 있지만 행 수가 2 인 경우에만 1의 개수를 가진 행을 제외시키는 행을 유지하는 방법입니다. 아래 예제에서 동일한 판매 주문을 528,886의 ID는 있지만 행 2.행 수를 사용하여 중복 값 제거
쿼리가 같은 행을 제외 할 :
select * from (
select *, ROW_NUMBER() over (partition by SalesOrderPostedID
Order By SalesOrderPostedID) as RowNumber
from cte5) c
Where SalesOrderPostedID=528886
and c.RowNumber=1
Union all
select * from (
select *, ROW_NUMBER() over (partition by SalesOrderPostedID
Order By SalesOrderPostedID) as RowNumber
from cte5) c
Where SalesOrderPostedID=528886
and c.RowNumber=2
나는 결과를 첨부했다. 약간의 수정과 함께 고르곤에 의해 제공
솔루션. 아래의 쿼리는 카운트가 2 인 모든 행 또는 카운트가 1 인 행을 반환합니다.
선택 하였다. * 에서 (cte5를 선택한다. SalesOrderPostedID하여 파티션 (위에 SalesOrderPostedID 바이 SalesOrderPostedID 의한 주문 (파티션) ROWNUMBER로서 카운트 ()) 위에 , ROW_NUMBER()를 cte5에서 CNT 로서 ) c 여기서 (RowNumber = 2 또는 cnt = 1);
당신은 샘플 데이터 및 원하는 결과를 제공 할 수 있습니까? 나는 그 설명을 정말로 따라갈 수 없다. –